tcpsrv.c的内容如下:
#include
#include
#define RECEIVE_MAX_LENGTH 100
#define SEND_MAX_LENGTH 100
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 socketadd;
socketadd.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
socketadd.sin_family = AF_INET;
socketadd.sin_port = htons(7001);
if( SOCKET_ERROR == bind(socksrv,(SOCKADDR*)&socketadd,sizeof(SOCKADDR)) )
{
printf("bind err\n");
return;
}
if( SOCKET_ERROR == listen(socksrv,5) )
{
printf("listen err");
return;
}
SOCKADDR_IN sockclient;
int len = sizeof(SOCKADDR);
while(1)
{
SOCKET sockconn = accept(socksrv,(SOCKADDR*)&sockclient,&len);//建立连接的套节字
if(INVALID_SOCKET == sockconn )
{
printf("acc err\n");
return;
}
char sendData[SEND_MAX_LENGTH];
//scanf("%s",sendData);
//strcpy(sendData, "hello client, i\'m server");
sprintf(sendData,"%s","hello client, i\'m server");
if( SOCKET_ERROR == send(sockconn,sendData,strlen(sendData)+1,0) )
{
printf("send err\n");
return;
}
char getData[RECEIVE_MAX_LENGTH];
recv(sockconn,getData,RECEIVE_MAX_LENGTH,0);
printf("%s\n",getData);
closesocket(sockconn);
}
}
tcpclient.c 的内容如下:
#include
#include
#define RECEIVE_MAX_LENGTH 100
#define SEND_MAX_LENGTH 100
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 socketClient = socket(AF_INET,SOCK_STREAM