由于只有部分代码,自己填不上.......程序未能运行成功,悲剧!
server:
1 SOCKET s = ::socket(AF_INET,SOCK_DGRAM,IPPROTO_TCP); 2 if(s == INVALID_SOCKET) 3 { 4 printf("Failed socket()\n"); 5 return 0; 6 } 7 //填充sockaddr_in结构 8 sockaddr_in sin; 9 sin.sin_family = AF_INET; 10 sin.sin_port = htons(4567); 11 sin.sin_addr.S_un.S_addr = INADDR_ANY; 12 //绑定这个套接字的一个本地地址 13 if(::bind(s,(LPSOCKADDR)&sin,sizeof(sin)) == SOCKET_ERROR) 14 { 15 printf("Failed bind()\n"); 16 return 0; 17 } 18 //进入监听模式 19 if(::listen(s,2) == SOCKET_ERROR) 20 { 21 printf("Failed listen()\n"); 22 return 0; 23 } 24 //接收数据 25 char buff[1024]; 26 sockaddr_in addr; 27 int nLen = sizeof(addr); 28 while(TRUE) 29 { 30 int nRecv = ::recvfrom(s,buff,1024,0,(sockaddr*)&addr,&nLen); 31 if(nRecv > 0) 32 { 33 buff[nRecv] = '\0'; 34 printf("接收到数据 (%s):%s",::inet_ntoa(addr.sin_addr),buff); 35 } 36 } 37 ::closesocket(s);
client:
1 sockaddr_in addr; 2 addr.sin_family=AF_INET; 3 addr.sin_port=htons(4567); 4 addr.sin_addr.S_un.S_addr=inet_addr("49.140.16.244"); 5 //发送数据 6 char szText[] = "TCP Server Demo!\r\n"; 7 ::sendto(s,szText,strlen(szText),0,(sockaddr*)&addr,sizeof(addr));
只能这样了,日后再说