[C++] socket - 1 [简单TCP通信C\S代码]

简介:


服务端:

复制代码
 1 #include<iostream>
 2 #include<winsock2.h>
 3 #include<stdio.h>
 4 #pragma comment(lib,"WS2_32.lib")//显示连接套接字库
 5 int main()
 6 {
 7     WSADATA data;//定义WSADATA结构体
 8     WORD w=MAKEWORD(2,0);//定义版本号
 9     char sztext[]="Welcome you\r\n";//定义并初始化发送到客户端的字符数组
10     ::WSAStartup(w,&data);//初始化套接字库
11     SOCKET s,s1;//定义连接套接字和数据收发套接字句柄
12     s=::socket(AF_INET,SOCK_STREAM,0);//创建TCP套接字
13     sockaddr_in addr,addr2;//定义套接字地址结构
14     int n=sizeof(addr2);
15     addr.sin_family=AF_INET;//初始化地质结构
16     addr.sin_port=htons(75);
17     addr.sin_addr.S_un.S_addr=INADDR_ANY;
18     ::bind(s,(sockaddr*)&addr,sizeof(addr));//绑定套接字
19     ::listen(s,5);//监听套接字
20     printf("Server already start!\r\n");
21     while(true)
22     {
23         s1=::accept(s,(sockaddr*)&addr2,&n);//接收连接请求
24         if(s1!=NULL)
25         {
26             printf("%s already connect\r\n",inet_ntoa(addr2.sin_addr));
27             ::send(s1,sztext,sizeof(sztext),0);//向客户端发送字符数组
28         }
29         ::closesocket(s);//关闭套接字句柄
30         ::closesocket(s1);
31         ::WSACleanup();//释放套接字库
32         if(getchar())
33         {
34             return 0;
35         }
36         else
37         {
38             ::Sleep(100);
39         }
40     }
41 }
复制代码

 

客户端:

复制代码
 1 #include<iostream>
 2 #include<winsock2.h>
 3 #include<stdio.h>
 4 #pragma comment(lib,"WS2_32.lib")//显示连接套接字库
 5 int main()
 6 {
 7     WSADATA data;//定义WSADATA结构体
 8     WORD w=MAKEWORD(2,0);//定义版本号
 9     ::WSAStartup(w,&data);//初始化套接字库
10     SOCKET s;
11     char sztext[16]={0};
12     s=::socket(AF_INET,SOCK_STREAM,0);//创建TCP套接字
13     sockaddr_in addr;
14     addr.sin_family=AF_INET;//初始化地质结构
15     addr.sin_port=htons(75);
16     addr.sin_addr.S_un.S_addr=inet_addr("10.203.117.150");
17     printf("Clienct already start\r\n");
18     ::connect(s,(sockaddr*)&addr,sizeof(addr));
19     ::recv(s,sztext,sizeof(sztext),0);
20     printf("%s\r\n",sztext);
21     ::closesocket(s);
22     ::WSACleanup();//释放套接字库
23     if(getchar())
24     {
25         return 0;
26     }
27     else
28     {
29         ::Sleep(100);
30     }
31 }
复制代码


相关文章
|
23天前
|
自然语言处理 算法 前端开发
C++与Doxygen:精通代码文档化之道
C++与Doxygen:精通代码文档化之道
48 0
|
1月前
|
自然语言处理 安全 C++
【C++ 格式化输出 】C++20 现代C++格式化:拥抱std--format简化你的代码
【C++ 格式化输出 】C++20 现代C++格式化:拥抱std--format简化你的代码
76 1
|
8天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
24 6
|
24天前
|
Linux 编译器 程序员
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
65 0
|
29天前
|
IDE Linux 开发工具
内存泄漏检测工具Valgrind:C++代码问题检测的利器(一)
内存泄漏检测工具Valgrind:C++代码问题检测的利器
65 0
|
1天前
|
网络协议 Linux Windows
TCP/IP、Http、Socket之间的区别
TCP/IP、Http、Socket之间的区别
|
4天前
|
网络协议 Ubuntu Unix
Linux 下使用 socket 实现 TCP 客户端
Linux 下使用 socket 实现 TCP 客户端
|
17天前
|
网络协议 Unix Linux
Socket通信详细介绍1
Socket通信详细介绍
28 0
|
17天前
|
C语言 C++ 容器
C调用C++代码
C调用C++代码
12 1
|
23天前
|
算法 程序员 C语言
C++设计哲学:构建高效和灵活代码的艺术
C++设计哲学:构建高效和灵活代码的艺术
60 1