用C或者C++语言实现SOCKET通信

2023-07-06   


#include
   #include
   void main()
  
   WORDwVersionRequested;
   WSADATA wsaData;
   int err;
   wVersionRequested = MAKEWORD(1,1);
   err = WSAStartup(wVersionRequested,&wsaData);
   if( err != 0)
  
   return;
  
   if(LOBYTE( wsaData.wVersion ) != 1||
   HIBYTE( wsaData.wVersion) != 1)
  
   WSACleanup();
   return;
  
   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(6000);
   bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
   listen(sockSrv,5);
   SOCKADDR_IN addrClient;
   int len=sizeof(SOCKADDR);
   while(1)
  
   SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
   char sendBuf[100];
   sprint(sendBuf,”Welcome %s to http://www.sunxin.org“,
   inet_ntoa(addrClient.sin_addr));
   send(sockConn,sendBuf,strlen(sendBuf)+1,0);
   char recvBuf[100];
   recv(sockConn,recvBuf);
   printf(“%s ”,recvBuf);
   closesocket(sockConn);
   WSACleanup();
  
  
   注:这是Server端;File->New->Win32 Console Application,工程名:TcpSrv;然后,File->New->C++ Source File,文件名:TcpSrv;在该工程的Setting的Link的Object/library modules项要加入ws2_32.lib
   #include
   #include
   void main()
  
   WORDwVersionRequested;
   WSADATA wsaData;
   int err;
   wVersionRequested = MAKEWORD(1,1);
   err = WSAStartup(wVersionRequested,&wsaData);
   if( err != 0)
  
   return;
  
   if(LOBYTE( wsaData.wVersion ) != 1||
   HIBYTE( wsaData.wVersion) != 1)
  
   WSACleanup();
   return;
  
   SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);
   SOCKADDR_IN addrSrv;
   addrSrv.sin_addr.S_un.S_addr=inet_addr(“127.0.0.1″);
   addrSrv.sin_family=AF_INET;
   addrSrv.sin_porthtons(6000);
   connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
   char recvBuf[100];
   recv(sockClient,recvBuf,100,0);
   printf(“%s ”,recvBuf);
   send(sockClient,”This is zhangsan”,strlen(“This is zhangsan”)+1,0);
   closesocket(sockClient);
   WSACleanup();
  
   注:这是Client端;File->New->Win32 Console Application,工程名:TcpClient;然后,File->New->C++ Source File,文件名:TcpClient;同理,在该工程的Setting的Link的Object/library modules项要加入ws2_32.lib


相关内容:

  1. JAVA和C++的区别
  2. JAVA和C++的区别
  3. 一家外企的面试题目(C/C++面试题,C语言面试题)
  4. JAVA和C++区别都有哪些
  5. 东方通信股份有限公司VC面试题
  6. 用C语言实现文件读写操作