套接字编程

上传者: zuoluozzhh | 上传时间: 2021-11-26 00:06:02 | 文件大小: 2KB | 文件类型: -
#include #include #include #pragma comment(lib,"wsock32.lib") #define MAX_LEN 1024 //数据报格式 struct Mes_pack { char* ip_addr; char* data_buf; int data_len; }; struct Sock_data { SOCKET sock; SOCKADDR_IN addr; }; void InitListenSocket(SOCKET& Listen_Socket) { int ret; WSADATA wsadata; int Port = 5150; SOCKADDR_IN Server_Addr; if ((ret = WSAStartup(MAKEWORD(2,2), &wsadata)) != 0) { printf("WSAStartup failed with error %d\n", ret); return; } if ((Listen_Socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET) { printf("socket failed with error %d\n", WSAGetLastError()); WSACleanup(); return; } u_long iMode = 1; ioctlsocket(Listen_Socket, FIONBIO, &iMode);//通常socket运行后默认为阻塞模式。要调用ioctlsocket函数设置非阻塞模式。 Server_Addr.sin_family = AF_INET; Server_Addr.sin_port = htons(Port); //将16bit字符从host字节序转化成网络字节序 Server_Addr.sin_addr.s_addr = htonl(INADDR_ANY);//将32bit字符从host转化成网络的 if (bind(Listen_Socket, (SOCKADDR *)&Server_Addr, sizeof(Server_Addr))== SOCKET_ERROR) { printf("bind failed with error %d\n", WSAGetLastError()); closesocket(Listen_Socket); WSACleanup(); return; } if (listen(Listen_Socket, 5) == SOCKET_ERROR) { printf("listen failed with error %d\n", WSAGetLastError()); closesocket(Listen_Socket); WSACleanup(); return; } printf("We are awaiting a connection on port %d.\n", Port); }

文件下载

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明