c语言socket通信例子 C++实现Socket连接通信

抒情君 17

一、打开两个VS2019,创建两个控制台程序分别命名为client和servers

c语言socket通信例子 C++实现Socket连接通信

二、编写服务端servers

1、包含头文件及库文件

includepragmacomment(lib,"ws2_32.lib")pragmawarning(disable:4996)

2、初始化及反初始化代码,记下来就行,永远不变

//初始化代码,死记下来就行WORD wVersion = MAKEWORD(2,2);
       WSADATA wsadata;if(WSAStartup(wVersion, &wsadata) !=0)
       {return0;
       }//反初始化操作WSACleanup();

3、创建socket

SOCKET s= socket(AF_INET, SOCK_STREAM,0);//第一个参数协议簇(AF_INET,ipv4;AF_INET6,ipv6;AF_UNIX,本机通信)//第二个参数类型(SOCK_STREAM,TCP流;SOCK_DGRAM,UDP数据报;SOCK_RAW,原始套接字)//第三个参数一般设置0,当确定套接字使用的协议簇和类型时,这个参数的值就为0if(s==INVALID_SOCKET)
       {return0;//创建套接字失败}

4、绑定端口并开启监听

sockaddr_inadd;intlen =sizeof(sockaddr_in);add.sin_family = AF_INET;//协议簇add.sin_addr.S_un.S_addr = inet_addr("0.0.0.0");//表示接受任意ip地址add.sin_port = htons(11111);//网络字节序是大尾方式,本地字节序是小尾方式,需要转换inti = bind(s, (sockaddr*)&add, len);
       listen(s,5);//瞬间来五个用户

5、等待客户端连接

sockaddr_incaddr;caddr.sin_family=AF_INET;intcaddrlen = sizeof(sockaddr_in);SOCKETsclient=accept(s,(sockaddr*)&caddr, &caddrlen);//重新产生一个socket用来通信if(sclient==INVALID_SOCKET){return0;}

6、发送数据并关闭连接

intret = send(sclient,"哎呦",strlen("哎呦"),0);
       closesocket(sclient);

三、编写客户端

1、包含头文件及库文件

includepragmacomment(lib,"ws2_32.lib")pragmawarning(disable:4996)

2、初始化及反初始化代码,记下来就行,永远不变

//初始化代码,死记下来就行WORD wVersion = MAKEWORD(2,2);
       WSADATA wsadata;if(WSAStartup(wVersion, &wsadata) !=0)
       {return0;
       }//反初始化操作WSACleanup();

3、创建socket

SOCKET s= socket(AF_INET, SOCK_STREAM,0);//第一个参数协议簇(AF_INET,ipv4;AF_INET6,ipv6;AF_UNIX,本机通信)//第二个参数类型(SOCK_STREAM,TCP流;SOCK_DGRAM,UDP数据报;SOCK_RAW,原始套接字)//第三个参数一般设置0,当确定套接字使用的协议簇和类型时,这个参数的值就为0if(s==INVALID_SOCKET)
       {return0;//创建套接字失败}
sockaddr_inadd;intlen =sizeof(sockaddr_in);add.sin_family = AF_INET;//协议簇add.sin_addr.S_un.S_addr = inet_addr("192.168.1.107");//主动连接该ip地址add.sin_port = htons(11111);//网络字节序是大尾方式,本地字节序是小尾方式,需要转换

4、连接服务器

inti = connect(s, (sockaddr*)&add, len);if(SOCKET_ERROR==i)
       {return0;
       }

5、接收服务器发送的数据并关闭连接

charsbuf[256] = {0};intret = recv(s, sbuf,256,0);if(ret==0)
       {return0;//连接断开}elseif(ret>0)
       {printf(sbuf);
       }
       
       closesocket(s);

四、运行结果

c语言socket通信例子 C++实现Socket连接通信

五、小技巧

@err,hr 监视输入这个可以查看错误信息

c语言socket通信例子 C++实现Socket连接通信

欢迎关注公众号:编程有你

欢迎关注视频号:之乎者也吧

c语言socket通信例子 C++实现Socket连接通信
c语言socket通信例子 C++实现Socket连接通信

上一篇:

下一篇:

  推荐阅读

分享