首页 > 代码库 > Visual C++网络编程--TCP通信
Visual C++网络编程--TCP通信
TCP服务端
1 #include <WinSock2.h> //包含头文件 2 #include <stdio.h> 3 #include <Windows.h> 4 #include <iostream> 5 #pragma comment(lib,"WS2_32.lib") //显示连接套接字库 6 int main() //主函数开始 7 { 8 WSADATA data; //定义WSADATA结构体对象 9 WORD w=MAKEWORD(2,0); //定义版本号码10 char sztext[]="欢迎你\r\n"; //定义并初始化发送到客户端的字符数组11 WSAStartup(w,&data); //初始化套接字库12 SOCKET s,s1; //定义连接套接字和数据收发套接字句柄13 s=socket(AF_INET,SOCK_STREAM,0); //创建TCP套接字14 sockaddr_in addr,addr2; //定义套接字地址结构15 int n=sizeof(addr2); //获取套接字地址结构大小16 addr.sin_family=AF_INET; //初始化地址结构17 addr.sin_port=htons(75);18 addr.sin_addr.S_un.S_addr=INADDR_ANY;19 bind(s,(sockaddr*)&addr,sizeof(addr)); //绑定套接字20 listen(s,5); //监听套接字21 std::cout<<"服务器已经启动\r"<<std::endl; //输出提示信息22 while(true)23 {24 s1=accept(s,(sockaddr*)&addr2,&n); //接受连接申请25 if (s1!=NULL)26 {27 std::cout<<"已经连上\r"<<std::endl<<inet_ntoa(addr2.sin_addr);28 send(s1,sztext,sizeof(sztext),0); //向客户端发送字符数组29 }30 closesocket(s);31 closesocket(s1); //关闭套接字句柄32 WSACleanup(); //释放套接字库33 if (getchar()) //如果有输入,则关闭程序34 {35 return 0; //正常关闭程序36 }37 else38 {39 Sleep(100); //应用睡眠0.1秒40 }41 42 }43 }
运行结果
服务器程序启动后,如果没有客户端向其发送连接请求,则服务器将一直等待知道有客户端程序连接。
TCP客户端
1 #include <WinSock2.h> //包含头文件 2 #include <stdio.h> 3 #include <Windows.h> 4 #include <iostream> 5 #pragma comment(lib,"WS2_32.lib") //显示连接套接字库 6 int main() //主函数开始 7 { 8 WSADATA data; //定义WSADATA结构体对象 9 WORD w=MAKEWORD(2,0); //定义版本号码10 char sztext[10]={0}; //定义并初始化发送到客户端的字符数组11 WSAStartup(w,&data); //初始化套接字库12 SOCKET s; //定义连接套接字和数据收发套接字句柄13 s=socket(AF_INET,SOCK_STREAM,0); //创建TCP套接字14 sockaddr_in addr; //定义套接字地址结构15 addr.sin_family=AF_INET; //初始化地址结构16 addr.sin_port=htons(75);17 addr.sin_addr.S_un.S_addr=inet_addr("192.168.7.6");18 std::cout<<"客户端已经启动\r"<<std::endl; //输出提示信息19 connect(s,(sockaddr*)&addr,sizeof(addr));20 recv(s,sztext,sizeof(sztext),0);21 std::cout<<sztext<<std::endl;22 closesocket(s); //关闭套接字句柄23 WSACleanup(); //释放套接字库24 if (getchar()) //如果有输入,则关闭程序25 {26 return 0; //正常关闭程序27 }28 else29 {30 Sleep(100); //应用睡眠0.1秒31 }32 33 34 }
编译运行程序,先打开服务端,再打开客户端,那么服务端会接受客户端的请求,客户端也会显示欢迎信息。
Visual C++网络编程--TCP通信
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。