我简要说一下服务器端的吧,客户端的你也就懂了 基于TCP的网络编程 服务端 #include
//引入套接字库 #include
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;}
//创建套接字 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 addrClient; int len=sizeof(SOCKADDR); while(1) {
//连接SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);char sendBuf[100];sprintf(sendBuf,"How are you!",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
#include
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;} 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_port=htons(6000); addrSrv.sin_family=AF_INET; connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); char recvBuf[100]; recv(sockClient,recvBuf,100,0); printf("%s\n",recvBuf); send(sockClient,"Hehe,good!",strlen("Hehe,good!")+1,0); closesocket(sockClient); WSACleanup(); }}
|