资源描述:
《socket io模型详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、SocketI/O模型之选择(select)在windows平台构建网络应用,必须了解socketI/O模型。windows提供了选择(select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(overlappedI/O)和完成端口(completionport)。一、客户端代码C++代码#include "stdafx.h" #include #include #pragma comment(lib, "ws2_32.lib") #define SERVER_ADDRESS
2、 "192.168.10.56" #define PORT 5150 #define MSGSIZE 1024 int main(int argc, char* argv[]) { WSADATA wsaData; SOCKET sClient; SOCKADDR_IN server; char szMessage[MSGSIZE]; int ret; // Initialize windows socket library WSAStartup(0x0202, &wsaData); //
3、 Create client socket sClient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); // Connect to server memset(&server, 0, sizeof(SOCKADDR_IN)); server.sin_family = AF_INET; server.sin_addr.S_un.S_addr = inet_addr(SERVER_ADDRESS); server.sin_port = htons(PORT); conne
4、ct(sClient, (sockaddr*)&server, sizeof(SOCKADDR_IN)); while (TRUE) { printf("Send:"); gets(szMessage); // Send message send(sClient, szMessage, strlen(szMessage), 0); // Receive message ret = recv(sClient, szMessage, MSGSIZE, 0);
5、 szMessage[ret] = ' '; printf("Received [%d bytes]: '%s'", ret, szMessage); } // Clean up closesocket(sClient); WSACleanup(); return 0; } #include"stdafx.h"#include#include#pragmacomment(lib,"ws2_32.lib")#defineSERVER_ADDRESS
6、"192.168.10.56"#definePORT5150#defineMSGSIZE1024intmain(intargc,char*argv[]){WSADATAwsaData;SOCKETsClient;SOCKADDR_INserver;charszMessage[MSGSIZE];intret;//InitializewindowssocketlibraryWSAStartup(0x0202,&wsaData);//CreateclientsocketsClient=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);//Connecttos
7、ervermemset(&server,0,sizeof(SOCKADDR_IN));server.sin_family=AF_INET;server.sin_addr.S_un.S_addr=inet_addr(SERVER_ADDRESS);server.sin_port=htons(PORT);connect(sClient,(sockaddr*)&server,sizeof(SOCKADDR_IN));while(TRUE){printf("Send:");g