zl程序教程

您现在的位置是:首页 >  后端

当前栏目

vc++实现的tcpsocket客户端和服务端示例

C++客户端 实现 示例 服务端 tcpsocket
2023-06-13 09:15:19 时间

TcpServer

复制代码代码如下:

#include<WinSock2.h>
#include<stdio.h>

#pragmacomment(lib,"ws2_32.lib")

intmain()
{
 //initialsocketlibrary
 WORDwVerisonRequested;
 WSADATAwsaData;
 interr;
 wVerisonRequested=MAKEWORD(1,1);
 err=WSAStartup(wVerisonRequested,&wsaData);
 if(err!=0)
 {
  return-1;
 }
 //if(LOBYTE(wsaData.wVersion)!=1||
 // HIBYTE(wsaData.wHighVersion)!=1)
 //{
 // WSACleanup();
 // return-1;
 //}

 //createsocket
 SOCKETsockServer=socket(AF_INET,SOCK_STREAM,0);

 //bindsocket
 SOCKADDR_INaddrServer;
 addrServer.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
 addrServer.sin_family=AF_INET;
 addrServer.sin_port=htons(6000);
 bind(sockServer,(SOCKADDR*)&addrServer,sizeof(addrServer));

 //listen
 listen(sockServer,5);

 SOCKADDR_INaddrClient;
 intlen=sizeof(addrClient);
 while(1)
 {
  //accept
  SOCKETsockConnection=accept(sockServer,(SOCKADDR*)&addrClient,&len);

  //send
  charsendBuf[100];
  sprintf(sendBuf,"Welcome%s",inet_ntoa(addrClient.sin_addr));
  send(sockConnection,sendBuf,strlen(sendBuf)+1,0);

  //receive
  charrecvBuf[100];
  recv(sockConnection,recvBuf,100,0);

  //
  printf("%s",recvBuf);

  //closeconnectionsocket
  closesocket(sockConnection);
 }

}

TcpClient

复制代码代码如下:


#include<WinSock2.h>
#include<stdio.h>

#pragmacomment(lib,"ws2_32.lib")

intmain()
{
 //initialsocketlibrary
 WORDwVerisonRequested;
 WSADATAwsaData;
 interr;
 wVerisonRequested=MAKEWORD(1,1);
 err=WSAStartup(wVerisonRequested,&wsaData);
 if(err!=0)
 {
  return-1;
 }
 //if(LOBYTE(wsaData.wVersion)!=1||
 // HIBYTE(wsaData.wHighVersion)!=1)
 //{
 // WSACleanup();
 // return-1;
 //}

 //createsocket
 SOCKETsockClient=socket(AF_INET,SOCK_STREAM,0);

 //connectserversocket
 SOCKADDR_INaddrServer;
 addrServer.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
 addrServer.sin_family=AF_INET;
 addrServer.sin_port=htons(6000);
 connect(sockClient,(SOCKADDR*)&addrServer,sizeof(addrServer));

 //receive
 charrecvBuf[100];
 recv(sockClient,recvBuf,100,0);

 //
 printf("%s",recvBuf);

 //send
 charsendBuf[100]="thisislisi\n";
 send(sockClient,sendBuf,strlen(sendBuf)+1,0);

 //closeconnectionsocket
 closesocket(sockClient);

 //cleansocketlibrary
 WSACleanup();
}