为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

socket服务端客户端例子

2018-04-28 5页 doc 19KB 21阅读

用户头像

is_597436

暂无简介

举报
socket服务端客户端例子socket服务端客户端例子 ?þÎñ?Ë #include #include #pragma comment(lib, "ws2_32.lib") #define Server_Port 8753 int main() { WSADATA d; SOCKET sockServer = INVALID_SOCKET; sockaddr_in my_addr; sockaddr_in clientAddr; int sizeClientAddr = sizeof(clientAddr); fd_se...
socket服务端客户端例子
socket服务端客户端例子 ?þÎñ?Ë #include #include #pragma comment(lib, "ws2_32.lib") #define Server_Port 8753 int main() { WSADATA d; SOCKET sockServer = INVALID_SOCKET; sockaddr_in my_addr; sockaddr_in clientAddr; int sizeClientAddr = sizeof(clientAddr); fd_set fd; timeval tv = {1, 0}; char buf[256] = {0}; char msgHello[] = "hello!"; for (;;) { if (WSAStartup(MAKEWORD(1,1), &d) != 0) break; if ((sockServer = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) break; my_addr.sin_family = AF_INET; my_addr.sin_port = htons(Server_Port); // ?ËÍâÌî0ΪËæ?úÑ?Ôñ?Ë?Ú my_addr.sin_addr.s_addr = INADDR_ANY; // Ê?ÓÃ×Ô?ºµÄIPµØÖ? memset(my_addr.sin_zero, 0, sizeof(my_addr.sin_zero)); if (0 != bind(sockServer, (sockaddr*)&my_addr, sizeof(my_addr)))//?ó??µ?SOCKET break; if (0 != listen(sockServer, 10))//ÕìÌýsocket????ÉèÖÃ×î?ó?Í??Á??ÓÊýΪ10 break; FD_ZERO(&fd); FD_SET(sockServer, &fd); while(1) { fd_set fdCur = fd; if (select(0, &fdCur, NULL, NULL, &tv) <= 0) continue; for (int i = 0; i < fdCur.fd_count; i++) { if (fdCur.fd_array[i] == sockServer) //Èç?ûsocketÊÇ?þÎñÆ???Ôò?ÓÊÕÁ??Ó { sizeClientAddr = sizeof(clientAddr); memset(&clientAddr, 0, sizeof(clientAddr)); SOCKET s = accept(sockServer, (sockaddr*)&clientAddr, &sizeClientAddr); if (INVALID_SOCKET != s) FD_SET(s, &fd); // say hello send(s, msgHello, strlen(msgHello)+1, 0); } else { int rcvSize = recv(fdCur.fd_array[i], buf, sizeof(buf),0); if (rcvSize <= 0) { closesocket(fdCur.fd_array[i]); FD_CLR(fdCur.fd_array[i], &fd); } else { printf("receive: %s\n", buf); //TODO ?ÖÎöÊÕµ?µÄÊý?Ý???ØÓ? } } } } break; } if (sockServer != INVALID_SOCKET) { closesocket(sockServer); } WSACleanup(); return 0; } ?Í???Ë #include #include #pragma comment(lib, "ws2_32.lib") #define Server_Port 8753 #define Server_IP "127.0.0.1" int main() { char msg[64] = "hello server!"; timeval tv = {2, 0}; //2Ãë??Ê? fd_set readfds; WSADATA d; int sock = INVALID_SOCKET; sockaddr_in server_addr; for (;;) { if (WSAStartup( MAKEWORD(1,1), &d ) != 0) break; if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) break; server_addr.sin_family = AF_INET; memset(server_addr.sin_zero, 0, sizeof(server_addr.sin_zero)); server_addr.sin_port = htons(Server_Port); server_addr.sin_addr.s_addr = inet_addr(Server_IP); if(::connect(sock, (sockaddr*)&server_addr, sizeof(server_addr))) { break; } if (send(sock, msg, strlen(msg) + 1, 0) == SOCKET_ERROR) { break; } FD_ZERO(&readfds); FD_SET(sock, &readfds); select(0, &readfds, NULL, NULL, &tv); if (!FD_ISSET(sock, &readfds)) break; int rcvSize = recv(sock, msg, sizeof(msg), 0); if(rcvSize > 0) { printf("receive: %s\n", msg); } break; } if (sock != INVALID_SOCKET) { closesocket(sock); } WSACleanup(); return 0; }
/
本文档为【socket服务端客户端例子】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索