文档详情

套接字编程实例套接字编程实例.doc

发布:2017-01-04约字共12页下载文档
文本预览下载声明
原文地址:C++网络套接字编程TCP和UDP实例作者:xiaojiangjiang 1.?????? SOCKET编程流程如下 面向有连接的套接字编程 服务器: 1)? socket) 2)? bind) 3)? listen) 4)? accept) 5)? send/recv); 6)? 7)? 客户端: 1)? socket) 2)? connect) 3)? send/recv) 4)? 面向无连接的套接字编程 服务器:(接收端) 1)?????? 创建套接字(socket) 2)?????? 将套接字绑定到一个本地地址和端口上(bind) 3)?????? 用返回的套接字和客户端进行通信(recvfrom); 4)?????? 关闭套接字 客户端:(发送端) 1)? socket) 2)? sendto 3)? 例如:面向有连接的套接字编程 首先在工程-(设置(link 在对象库模板最后面再加上ws2_32.lib 客户端: #includeWinsock2.h #includestdio.h int main() { //第一步:加载socket库函数 //********************************************************** WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 1, 1 ); err = WSAStartup( wVersionRequested, wsaData ); if ( err != 0 ) { return 0; } if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 ) { WSACleanup( ); return 0; } //********************************************************** //第一步,创建套接字 SOCKET sockClient = socket(AF_INET,SOCK_STREAM,0) ; //定义套接字地址 SOCKADDR_IN addrSrv; 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_INET addrSrv.sin_port = htons(1234); //连接服务器 // connect(sockClient,(SOCKADDR*)addrSrv,sizeof(SOCKADDR)); if(connect(sockClient,(SOCKADDR*)addrSrv,sizeof(SOCKADDR))!=0) { //MessageBox(连接失败); //return; printf(error); return 0; }else { printf(success); } char recvBuf[100]; recv(sockClient,recvBuf,100,0); printf(客户端接收到的数据:%s,recvBuf); send(sockClient,client send ,strlen(client send )+1,0); //关闭套接字 closesocket(sockClient); //清除套接字资源 WSACleanup(); return 0; } ? ? 服务器端: #includeWinsock2.h #includestdio.h int main() { //第一步:加载socket库函数 //********************************************************** WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 1, 1
显示全部
相似文档