socket 编程实现客户端和服务器端通信

上传人:小** 文档编号:89127171 上传时间:2019-05-19 格式:DOC 页数:2 大小:20.50KB
返回 下载 相关 举报
socket 编程实现客户端和服务器端通信_第1页
第1页 / 共2页
socket 编程实现客户端和服务器端通信_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《socket 编程实现客户端和服务器端通信》由会员分享,可在线阅读,更多相关《socket 编程实现客户端和服务器端通信(2页珍藏版)》请在金锄头文库上搜索。

1、#include StdAfx.h#include #include #pragma comment(lib,WS2_32.lib)#define BUF_SIZE 64int _tmain(int argc,_TCHAR* argv)WSADATA wsd;SOCKET sServer;SOCKET SClient;int retVal;char bufBUF_SIZE;if (WSAStartup(MAKEWORD(2,2),&wsd)!=0)printf(wsastartup failed!n);return 1;sServer=socket(AF_INET,SOCK_STREAM,IP

2、PROTO_TCP);if (INVALID_SOCKET=sServer)printf(socket failed!n);WSACleanup();return -1;SOCKADDR_IN addrServ;addrServ.sin_family=AF_INET;addrServ.sin_port=htons(9990);addrServ.sin_addr.S_un.S_addr=htonl(INADDR_ANY);retVal=bind(sServer,(const struct sockaddr*) &addrServ,sizeof(SOCKADDR_IN);if (SOCKET_ER

3、ROR=retVal)printf(bind failed!n);closesocket(sServer);WSACleanup();return -1;retVal=listen(sServer,1);if (SOCKET_ERROR=retVal)printf(listen failed!n);closesocket(sServer);WSACleanup();return -1;printf(tcp server start.n);sockaddr_in addrClient;int addrClientlen=sizeof(addrClient);SClient=accept(sSer

4、ver,(sockaddr FAR*)&addrClient,&addrClientlen);if (INVALID_SOCKET=SClient)printf(accept failed!n);closesocket(sServer);WSACleanup();return -1;while(true)ZeroMemory(buf,BUF_SIZE);retVal=recv(SClient,buf,BUF_SIZE,0);if (SOCKET_ERROR=retVal)printf(recv failed!n);closesocket(sServer);closesocket(SClient

5、);WSACleanup();return -1;SYSTEMTIME st;GetLocalTime(&st);char sDataTime30;sprintf(sDataTime,%4d-%2d-%2d %2d:%2d:%2d,st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);printf(%s,recv from client %s:%d:%sn,sDataTime,inet_ntoa(addrClient.sin_addr),addrClient.sin_port,buf);if (StrCmp(buf,quit)=0

6、)retVal=send(SClient,quit,strlen(quit),0);break;elsechar msgBUF_SIZE; sprintf(msg,message received -%s,buf);retVal=send(SClient,msg,strlen(msg),0);if (SOCKET_ERROR=retVal)printf(send failed!n);closesocket(sServer);closesocket(SClient);WSACleanup();return -1;closesocket(sServer);closesocket(SClient);

7、WSACleanup();system(pause);return 0;/#include StdAfx.h#include #include #pragma comment(lib,WS2_32.lib)#define BUF_SIZE 64int _tmain(int argc,_TCHAR* argv)WSADATA wsd;SOCKET sHost;SOCKADDR_IN servAddr;int retVal;char bufBUF_SIZE;if (WSAStartup(MAKEWORD(2,2),&wsd)!=0)printf(wsastartup failed!n);retur

8、n 1;sHost=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if (INVALID_SOCKET=sHost)printf(socket failed!n);WSACleanup();return -1;SOCKADDR_IN addrServ;servAddr.sin_family=AF_INET;servAddr.sin_addr.S_un.S_addr=inet_addr(59.69.132.186);/zhujiservAddr.sin_port=htons(9990);int sServerAddlen=sizeof(servAddr);ret

9、Val=bind(sHost,(LPSOCKADDR) &addrServ,sizeof(SOCKADDR_IN);if (SOCKET_ERROR=retVal)printf(bind failed!n);closesocket(sHost);WSACleanup();return -1;retVal=listen(sHost,1);if (SOCKET_ERROR=retVal)printf(listen failed!n);closesocket(sHost);WSACleanup();return -1;printf(tcp server start.n);sockaddr_in ad

10、drClient;int addrClientlen=sizeof(addrClient);SClient=accept(sHost,(sockaddr FAR*)&addrClient,&addrClientlen);if (INVALID_SOCKET=SClient)printf(accept failed!n);closesocket(sHost);WSACleanup();return -1;while(true)printf(please input a string to send:);std:string str;std:getline(std:cin,str);ZeroMem

11、ory(buf,BUF_SIZE);StrCpy(buf,str.c_str();retVal=send(sHost,buf,strlen(buf),0);if (SOCKET_ERROR=retVal)printf(send failed!n);closesocket(sHost);WSACleanup();return -1;retVal=send(sHost,buf,sizeof(buf)+1,0);printf(recv from server:%sn,buf);if (StrCmp(buf,quit)=0)retVal=send(SClient,quit,strlen(quit),0);break;closesocket(sHost);WSACleanup();system(pause);return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号