- 1、本文档共84页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
可移植的网络编程—可移植的构件之recv()函数 59 /* if Win32, check for INVALID_SOCKET constant */ 60 #ifdef WIN32 61 if(sd == INVALID_SOCKET) 62 /* otherwise, check for -1 */ 63 #else 64 if(sd 0) 65 #endif 66 { 67 printf(socket() failed.\n); 68 return(1); 69 } 71 printf(socket descriptor created.\n); 73 /* bind socket to local port */ 75 memset(sin, 0x0, sizeof(sin)); 77 sin.sin_family = AF_INET; 79 /* port to bind to */ 80 sin.sin_port = htons(LOCAL_PORT); 82 /* make available via all interfaces */ 83 sin.sin_addr.s_addr = INADDR_ANY; 85 /* bind socket */ 86 ret = bind(sd, (struct sockaddr *) sin, sizeof(sin)); 87 #ifdef WIN32 88 if(ret == SOCKET_ERROR) 89 #else 90 if(ret 0) 91 #endif 92 { 93 printf(bind() failed.\n); 94 return(1); 95 } 可移植的网络编程—可移植的构件之recv()函数 97 printf(waiting for intput.\n?; 98 99 /* receive UDP datagram via recv() function */ 100 ret = recv (sd, (char *) buf, BUF_LEN, 0); 101 #ifdef WIN32 102 if(ret == SOCKET_ERROR) 103 #else 104 if(ret 0) 105 #endif 106 { 107 printf(recv() failed.\n); 108 return(1); 109 } 110 111 printf(recv ok.\n); 112 113 return(0); 114 } 可移植的网络编程—可移植的构件之close()函数 1 /* 2 * close1.c 4 * cross-platform compatible example of close()/closesocket() functions. 6 */ 8 #ifdef WIN32 10 /* required for winsock */ 11 #pragma comment(lib, ws2_32.lib) 13 #include winsock2.h 15 #else 17 #include sys/types.h 18 #include sys/socket.h 19 #include unistd.h 21 #endif 22 23 #include stdio.h 24 25 int 26 main(void) 27 { 28 #ifdef WIN32 29 WSADATA wsa; /* required for WSAStartup() */ 30 SOCKET sd = 0; 31 #else 32 int sd = 0; 33 #endif 34 可移植的网络编程—可移植的构件之close()函数 35 /* initialize winsock if on win32 */ 36 #ifdef WIN32 37 memset(wsa, 0x0, sizeof(WSADATA)); 39 if(WSAStartup(MAKEWORD(2, 0), wsa) != 0x0) 40 { 41 printf(WSAStartup() failed.\n); 42 return(1); 43 } 44 #endif 46 /* create socket descriptor */ 47 sd = socket(AF_INET, SOCK_STREAM, 0); 48 /* if win32, check fo
文档评论(0)