简单的socket通信TCP

Tcp Server:

View Code
#include <stdio.h>
#include
<Winsock2.h>
#pragma comment(lib,"ws2_32.lib")

void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested
= MAKEWORD(2,2);
err
= WSAStartup(wVersionRequested,&wsaData);
if (err!=0)
{
return;
}
if ((LOBYTE(wsaData.wVersion)!=2)||(HIBYTE(wsaData.wVersion)!=2))
{
WSACleanup();
return;
}
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr
=htonl(INADDR_ANY);
addrSrv.sin_family
=AF_INET;
addrSrv.sin_port
=htons(6000);

int len = sizeof(SOCKADDR);

SOCKET socketSrv
=socket(AF_INET,SOCK_STREAM,0);
bind(socketSrv,(SOCKADDR
*)&addrSrv,len);
listen(socketSrv,
5);
SOCKADDR_IN addrConn;

while(1) {
SOCKET socketConn
=accept(socketSrv,(SOCKADDR*)&addrConn,&len);
char sendBuf[100];
sprintf(sendBuf,
"Welcome %s to TCP Server.",inet_ntoa(addrConn.sin_addr));
send(socketConn,sendBuf,strlen(sendBuf)
+1,0);
char recvBuf[100];
recv(socketConn,recvBuf,
100,0);
printf(
"%s\n",recvBuf);
closesocket(socketConn);
}

closesocket(socketSrv);
WSACleanup();

return;
}

Tcp Client:

View Code
#include <stdio.h>
#include
<Winsock2.h>
#pragma comment(lib,"ws2_32.lib")

void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested
=MAKEWORD(2,2);
err
=WSAStartup(wVersionRequested,&wsaData);
if (err!=0)
{
return;
}
if ((LOBYTE(wsaData.wVersion)!=2)||(HIBYTE(wsaData.wVersion)!=2))
{
WSACleanup();
return;
}
SOCKADDR_IN addrClient;
addrClient.sin_addr.S_un.S_addr
=inet_addr("127.0.0.1");
addrClient.sin_family
=AF_INET;
addrClient.sin_port
=htons(6000);
int len=sizeof(SOCKADDR);

SOCKET socketClient
=socket(AF_INET,SOCK_STREAM,0);

connect(socketClient,(SOCKADDR
*)&addrClient,len);

char recvBuf[100];
recv(socketClient,recvBuf,
100,0);
printf(
"%s\n",recvBuf);

char *sendBuf="This is Tcp Client.";
send(socketClient,sendBuf,strlen(sendBuf)
+1,0);

closesocket(socketClient);

WSACleanup();

return;
}
原文地址:https://www.cnblogs.com/Jekhn/p/1982595.html