资源描述:
《socket 编程实现客户端和服务器端通信.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include"StdAfx.h"#include#include#pragmacomment(lib,"WS2_32.lib")#defineBUF_SIZE64int_tmain(intargc,_TCHAR*argv[]){WSADATAwsd;SOCKETsServer;SOCKETSClient;intretVal;charbuf[BUF_SIZE];if(WSAStartup(MAKEWORD(2,2),&wsd)!=0){printf("wsastartupfailed!");retu
2、rn1;}sServer=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if(INVALID_SOCKET==sServer){printf("socketfailed!");WSACleanup();return-1;}SOCKADDR_INaddrServ;addrServ.sin_family=AF_INET;addrServ.sin_port=htons(9990);addrServ.sin_addr.S_un.S_addr=htonl(INADDR_ANY);retVal=bind(sServer,(
3、conststructsockaddr*)&addrServ,sizeof(SOCKADDR_IN));if(SOCKET_ERROR==retVal){printf("bindfailed!");closesocket(sServer);WSACleanup();return-1;}retVal=listen(sServer,1);if(SOCKET_ERROR==retVal){printf("listenfailed!");closesocket(sServer);WSACleanup();return-1;}printf("tcps
4、erverstart...");sockaddr_inaddrClient;intaddrClientlen=sizeof(addrClient);SClient=accept(sServer,(sockaddrFAR*)&addrClient,&addrClientlen);if(INVALID_SOCKET==SClient){printf("acceptfailed!");closesocket(sServer);WSACleanup();return-1;}while(true){ZeroMemory(buf,BUF_SIZE);r
5、etVal=recv(SClient,buf,BUF_SIZE,0);if(SOCKET_ERROR==retVal){printf("recvfailed!");closesocket(sServer);closesocket(SClient);WSACleanup();return-1;}SYSTEMTIMEst;GetLocalTime(&st);charsDataTime[30];sprintf(sDataTime,"%4d-%2d-%2d%2d:%2d:%2d",st.wYear,st.wMonth,st.wDay,st.wHour,
6、st.wMinute,st.wSecond);printf("%s,recvfromclient[%s:%d]:%s",sDataTime,inet_ntoa(addrClient.sin_addr),addrClient.sin_port,buf);if(StrCmp(buf,"quit")==0){retVal=send(SClient,"quit",strlen("quit"),0);break;}else{charmsg[BUF_SIZE];sprintf(msg,"messagereceived-%s",buf);retVal=sen
7、d(SClient,msg,strlen(msg),0);if(SOCKET_ERROR==retVal){printf("sendfailed!");closesocket(sServer);closesocket(SClient);WSACleanup();return-1;}}}closesocket(sServer);closesocket(SClient);WSACleanup();system("pause");return0;}/#include"StdAfx.h"#include#include8、ream>#pragmacomment(lib,"WS2_32.lib")#defineBUF_SIZE64int_tma