简单的TCP通信

来源:互联网 发布:培训机构推荐就业 知乎 编辑:程序博客网 时间:2024/05/29 04:54

服务端

#include <Winsock2.h>#include <stdio.h>#pragma comment(lib,"Ws2_32.lib")int main (void){//加载套接字WORD wVersionRequested=MAKEWORD(2,2);WSADATA lpWSAData;WSAStartup(wVersionRequested,&lpWSAData);//创建socketSOCKET 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(1234);//绑定端口if (bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR))==SOCKET_ERROR){printf("绑定端口失败!\n");return 0;}//监听if (listen(sockSrv,5)==SOCKET_ERROR){printf("绑定套接字失败!\n");return 0;}printf("服务器运行中TCP协议端口1234\n");SOCKADDR_IN addrClient;int len=sizeof(SOCKADDR);while (true){//等待客户端连接SOCKET sockconn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);char Sendbuff[100]={0};char Recvbuff[100]={0};sprintf(Sendbuff,"Welcone %s to WebServer!",inet_ntoa(addrClient.sin_addr));send(sockconn,Sendbuff,strlen(Sendbuff)+1,0);recv(sockconn,Recvbuff,100,0);printf("来自客户端:%s的消息%s\n",inet_ntoa(addrClient.sin_addr),Recvbuff);closesocket(sockconn);}closesocket(sockSrv);WSACleanup();    getchar();return 0;}


 

客户端

#include <Winsock2.h>#include <stdio.h>#pragma comment (lib,"Ws2_32.lib")int main (void){//加载套接字WORD wVersionRequested=MAKEWORD(2,2);WSADATA lpWSAData;WSAStartup(wVersionRequested,&lpWSAData);//创建socketSOCKET sockSrv=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);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(1234);//连接if (connect(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR))==SOCKET_ERROR){printf("连接失败\n");return 0;}char Sendbuff[100]={0};char Recvbuff[100]={0};recv(sockSrv,Recvbuff,100,0);printf("%s\n",Recvbuff);sprintf(Sendbuff,"this zhangsan");send(sockSrv,Sendbuff,strlen(Sendbuff+1),0);closesocket(sockSrv);WSACleanup();        getchar();return 0;}

2015年3月3日14:59:03

程序执行结果如下:

服务端

服务器运行中TCP协议端口1234
来自客户端:127.0.0.1的消息this zhangsa

客户端

Welcone 127.0.0.1 to WebServer!

0 0