资源描述:
《套接字编程实例.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、原文地址:C++网络套接字编程TCP和UDP实例作者:xiaojiangjiang1. 创建一个简单的SOCKET编程流程如下面向有连接的套接字编程服务器:1) 创建套接字(socket)2) 将套接字绑定到一个本地地址和端口上(bind)3) 将套接字设定为监听模式,准备接受客户端请求(listen)4) 等待客户端请求到来,当请求到来后,接受连接请求,返回一个新的对应于此连接的套接字(accept)5) 用返回的套接字和客户端进行通信(send/recv);6) 返回,等待另一个客户端请求7) 关
2、闭套接字客户端:1) 创建套接字(socket)2) 向服务器发出连接请求(connect)3) 和服务器进行通信(send/recv)4) 关闭套接字面向无连接的套接字编程服务器:(接收端)1) 创建套接字(socket)2) 将套接字绑定到一个本地地址和端口上(bind)3) 用返回的套接字和客户端进行通信(recvfrom);4) 关闭套接字客户端:(发送端)1) 创建套接字(socket)2) 向服务器发送数据(sendto3) 关闭套接字例如:面向有连接的套接字
3、编程首先在工程-à设置àlink在对象库模板最后面再加上ws2_32.lib客户端:#include#includeintmain(){//第一步:加载socket库函数//**********************************************************WORDwVersionRequested;WSADATAwsaData;interr;wVersionRequested=MAKEWORD(1,1);err=WSAStartup(w
4、VersionRequested,&wsaData);if(err!=0){return0;}if(LOBYTE(wsaData.wVersion)!=1
5、
6、HIBYTE(wsaData.wVersion)!=1){WSACleanup();return0;}//**********************************************************//第一步,创建套接字SOCKETsockClient=socket(AF_INET,SOCK_STREAM,0);//定义套接字地址S
7、OCKADDR_INaddrSrv;addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");//获取服务器IP地址,inet_addr()将IP地址转为点分十进制的格式addrSrv.sin_family=AF_INET;//sin_family表示地址族,对于IP地址,sin_family成员将一直是AF_INETaddrSrv.sin_port=htons(1234);//连接服务器//connect(sockClient,(SOCKADDR*)&addrSr
8、v,sizeof(SOCKADDR));if(connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR))!=0){//MessageBox("连接失败");//return;printf("error");return0;}else{printf("success");}charrecvBuf[100];recv(sockClient,recvBuf,100,0);printf("客户端接收到的数据:%s",recvBuf);send(sockClient,
9、"clientsend",strlen("clientsend")+1,0);//关闭套接字closesocket(sockClient);//清除套接字资源WSACleanup();return0;} 服务器端:#include#includeintmain(){//第一步:加载socket库函数//**********************************************************WORDwVersionRequested;WSAD
10、ATAwsaData;interr;wVersionRequested=MAKEWORD(1,1);err=WSAStartup(wVersionRequested,&wsaData);if(err!=0){return0;}if(LOBYTE(wsaData.wVersion)!=1
11、
12、HIBYTE(wsaData.wVersion)!=1){WSACleanup();return0