//客户端。
#include <Winsock2.h>
#include <stdio.h>
int 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=inet_addr("127.0.0.1");
addrsrv.sin_family=AF_INET;
addrsrv.sin_port=htons(6000);
connect(socksrv,(SOCKADDR *)&addrsrv,sizeof(SOCKADDR));
char rebuf[1024];
recv(socksrv,rebuf,1024,0);
printf("%s\n",rebuf);
send(socksrv,"this is jy!",strlen("this is jy!")+1,0);
closesocket(socksrv);
WSACleanup();
}
//服务端
#include <Winsock2.h>
#include <stdio.h>
int 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(6000);
bind(socksrv,(SOCKADDR*)&addrsrv,sizeof(SOCKADDR));
listen(socksrv,5);
SOCKADDR_IN addclient;
int len=sizeof SOCKADDR;
while(1)
{
SOCKET sockconn=accept(socksrv,(SOCKADDR*)&addclient,&len);
char sendbuf[1024];
sprintf(sendbuf,"welcome %s to my home!",inet_ntoa(addclient.sin_addr));
send(sockconn,sendbuf,strlen(sendbuf)+1,0);
char revbuf[1024];
recv(sockconn,revbuf,1024,0);
printf("%s",revbuf);
}
}