//
TCP的服务器端:(TcpSrv.cpp)
#include " Winsock2.h "
#include " stdio.h "
void main()
... {
//初始化socket编程环境
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;
}
//创建Tcp服务器socket
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(4000) ;
//将socket与地址绑定在一起
bind( sockSrv ,(SOCKADDR*)&addrSrv , sizeof(SOCKADDR) ) ;
//开始监听客户端请求,最大连接数为5
listen( sockSrv , 5 ) ;
//用于存放客户端地址
SOCKADDR_IN addrClient ;
int len = sizeof( SOCKADDR_IN ) ;
//不断接收客户端发送的请求
while ( 1 )
...{
//接收到的客户端请求socket
SOCKET sockConn = accept( sockSrv , (SOCKADDR *)&addrClient , &len ) ;
//发送数据
char sendBuf[100] ;
sprintf( sendBuf , "Weclome %s to here:" , inet_ntoa(addrClient.sin_addr) ) ;
send( sockConn , sendBuf , strlen(sendBuf)+1 , 0 ) ;
//接收数据
char recvBuf[100] ;
recv( sockConn , recvBuf , 100 , 0 ) ;
printf("%s " , recvBuf ) ;
//关闭socket
closesocket( sockConn ) ;
}
//清理socket编程环境
WSACleanup() ;
}
// TCP的客户端:(TcpClient.cpp)
# include " Winsock2.h "
# include " stdio.h "
void main()
... {
//初始化socket编程环境
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
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( 4000 ) ;
//连接服务器
connect( sockClient , (SOCKADDR*)&addrSrv , sizeof(SOCKADDR)) ;
//等待接收服务器的响应
char recvBuf[100];
recv( sockClient , recvBuf , 100 , 0 ) ;
printf( "%s " , recvBuf ) ;
char sendBuf[100] ;
sprintf( sendBuf , "%s" , "this is zhang san" ) ;
send( sockClient , sendBuf , strlen(sendBuf)+1 , 0 ) ;
closesocket( sockClient ) ;
WSACleanup() ;
}
#include " Winsock2.h "
#include " stdio.h "
void main()
... {
//初始化socket编程环境
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;
}
//创建Tcp服务器socket
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(4000) ;
//将socket与地址绑定在一起
bind( sockSrv ,(SOCKADDR*)&addrSrv , sizeof(SOCKADDR) ) ;
//开始监听客户端请求,最大连接数为5
listen( sockSrv , 5 ) ;
//用于存放客户端地址
SOCKADDR_IN addrClient ;
int len = sizeof( SOCKADDR_IN ) ;
//不断接收客户端发送的请求
while ( 1 )
...{
//接收到的客户端请求socket
SOCKET sockConn = accept( sockSrv , (SOCKADDR *)&addrClient , &len ) ;
//发送数据
char sendBuf[100] ;
sprintf( sendBuf , "Weclome %s to here:" , inet_ntoa(addrClient.sin_addr) ) ;
send( sockConn , sendBuf , strlen(sendBuf)+1 , 0 ) ;
//接收数据
char recvBuf[100] ;
recv( sockConn , recvBuf , 100 , 0 ) ;
printf("%s " , recvBuf ) ;
//关闭socket
closesocket( sockConn ) ;
}
//清理socket编程环境
WSACleanup() ;
}
// TCP的客户端:(TcpClient.cpp)
# include " Winsock2.h "
# include " stdio.h "
void main()
... {
//初始化socket编程环境
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
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( 4000 ) ;
//连接服务器
connect( sockClient , (SOCKADDR*)&addrSrv , sizeof(SOCKADDR)) ;
//等待接收服务器的响应
char recvBuf[100];
recv( sockClient , recvBuf , 100 , 0 ) ;
printf( "%s " , recvBuf ) ;
char sendBuf[100] ;
sprintf( sendBuf , "%s" , "this is zhang san" ) ;
send( sockClient , sendBuf , strlen(sendBuf)+1 , 0 ) ;
closesocket( sockClient ) ;
WSACleanup() ;
}