C++基于TCP的网络应用程序的编写

来源:互联网 发布:艾泽拉斯数据库 人口 编辑:程序博客网 时间:2024/06/05 03:59

1.服务器端程序(需要加载依赖库 ws2_32.lib)

#include <WinSock2.h>#include <stdio.h>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 addrSrv;addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);//host2net 32位addrSrv.sin_family = AF_INET;addrSrv.sin_port = htons(6000);//host2net 16位//绑定套接字bind(sockSrv, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));//将套接字设置为监听模式,准备接受客户请求listen(sockSrv, 5);//设置等待连接队列的最大长度是5SOCKADDR_IN addrClient;int len = sizeof(SOCKADDR);while (1){//等待客户请求到来SOCKET sockConn = accept(sockSrv, (SOCKADDR*)&addrClient, &len);char sendBuf[100];sprintf(sendBuf, "welcome %s to www.hahacom", inet_ntoa(addrClient.sin_addr));//发送数据send(sockConn, sendBuf, strlen(sendBuf)+1, 0);//接受数据char recvBuf[100];recv(sockConn, recvBuf, strlen(recvBuf)+1, 0);//打印接受到的数据printf("%s/n",recvBuf);//关闭套接字closesocket(sockConn);}}


2.客户端程序的(需要加载依赖库 ws2_32.lib)

#include <WinSock2.h>#include <stdio.h>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 sockClient = socket(AF_INET, SOCK_STREAM, 0);SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");//将点分十进制表示的IP地址转换为u_long类型的数值addrSrv.sin_family = AF_INET;addrSrv.sin_port = htons(6000);//host2net 16位//向服务器发送连接请求connect(sockClient, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));//接受数据char recvBuf[100];recv(sockClient, recvBuf, strlen(recvBuf)+1, 0);//打印接受到的数据printf("%s/n",recvBuf);//发送数据send(sockClient, "this is lisa", strlen("this is lisa")+1, 0);//关闭套接字closesocket(sockClient);WSACleanup();}

0 0
原创粉丝点击