C++ 基于TCP通讯的即时通信服务器DEMO

来源:互联网 发布:知堂回想录 pdf 编辑:程序博客网 时间:2024/05/16 17:19
#include <stdio.h>#include <winsock2.h>  #pragma comment( lib, "ws2_32.lib" ) //静态链接库int main()  {   WORD wVersionRequested;   WSADATA wsaData;   int err;       wVersionRequested = MAKEWORD( 1, 1 );       err = WSAStartup( wVersionRequested, &wsaData );   if ( err != 0 ) {       printf("\n连接出错\n");    return 0;   }       if ( LOBYTE( wsaData.wVersion ) != 1 ||  HIBYTE( wsaData.wVersion ) != 1 ) {     WSACleanup( );     printf("\n连接出错\n");  return 0;   }   SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);       SOCKADDR_IN addrSrv;   addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);   addrSrv.sin_family=AF_INET;   addrSrv.sin_port=htons(8888);   bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));   listen(sockSrv,5);   SOCKADDR_IN addrClient;   int len=sizeof(SOCKADDR);   printf("\n连接成功 正在监听中...\n"); while(1)   {         printf("\n连接成功 等待连接中...\n");      SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);        char sendBuf[50];        sprintf(sendBuf,"Welcome %s to here!",inet_ntoa(addrClient.sin_addr));        send(sockConn,sendBuf,strlen(sendBuf)+1,0);        char recvBuf[50];        recv(sockConn,recvBuf,50,0);        printf("%s\n",recvBuf);        closesocket(sockConn);        printf("\n关闭连接中...\n"); }   printf("\n已关闭通信服务器...\n"); getchar();  return 0; } 

0 0
原创粉丝点击