c++ TCP通信
#include <Winsock2.h>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")
void main()
{
WORD wVersionRequested;
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(4444); 
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];
sprintf(sendbuf,"welcome %s to TCP server",inet_ntoa(addrclient.sin_addr));
send(sockconn,sendbuf,strlen(sendbuf)+1,0);
char recvbuf[100];
recv(sockconn,recvbuf,100,0);
printf("%s\n",recvbuf);
closesocket(sockconn); 
} 
}
#include <Winsock2.h>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")

void main()
{
WORD wVersionRequested;
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_port=htons(4444);
connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
char recvBuf[100];
recv(sockClient,recvBuf,100,0);
printf("%s\n",recvBuf);
send(sockClient,"this is huyvanull's client",strlen("this is huyvanull's client")+1,0);
closesocket(sockClient);
WSACleanup();
}
转自 http://www.cppblog.com/hwpok/archive/2009/07/21/90769.html



浙公网安备 33010602011771号