程序分为服务端和客户端(服务端就相当于我们的网站服务器,客户端就相当于我们的浏览器)
在服务端,我们需要大致按照以下步骤:
1.初始化socket库。
2.绑定本机地址和端口。(服务端特有)
3.监听端口,等待客户端连接。
4.当有客户端连接,进行处理,但后继续监听或者结束程序。
5.退出程序,关闭socket,终止对socket库的使用。
在客户端,我们需要按照以下步骤:
1.初始化socket库。
2.设置远程主机的地址和端口信息,并连接。
3.等待服务端的响应
4.当服务端响应,进行处理。
5.退出程序,关闭socket,终止对socket库的使用。
下面引用一张来自网络的图片,直观的说明通信的过程。
下面是代码示例:
服务端:
#include#include int main(void) { int len = 0; WSADATA wd; int ret = 0; SOCKET s,c; char sendBuf[1000]="", recvBuf[1000]=""; SOCKADDR_IN saddr, caddr; ret = WSAStartup(MAKEWORD(2,2),&wd); /*1.初始化操作(希望使用的WinSock DLL 的版本)*/ if(ret != 0) { return 0; } if(HIBYTE(wd.wVersion)!=2 || LOBYTE(wd.wVersion)!=2) { printf("初始化失败"); WSACleanup(); return 1; } /*2.创建服务端socket*/ s = socket(AF_INET, SOCK_STREAM, 0); /*3.设置服务端信息*/ saddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);