开发者社区> 史迪奇2号> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

[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 }
复制代码


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用ssl_exporter监控K8S集群证书
使用ssl_exporter监控K8S集群证书
96 0
C++网络通信 Socket
C++网络通信 Socket
97 0
Kubernetes(k8s)v1.7新特性 新增StorageOS卷插件与Local持久存储
背景介绍 在Kubernetes中卷的作用在于提供给POD存储,这些存储可以挂载到POD中的容器上,进而给容器提供存储。 从图中可以看到结构体PodSpec有个属性是Volumes,通过这个Volumes属性可以关联到结构体Volume和结构体VolumeSource,而且这个Volumes属性是一个数组类型,就是说POD可以关联到多个不同类型的卷上面。
2268 0
UDP Sockets in C#
UDP provides an end-to-end service different from that of TCP. In fact, UDP performs only two functions: (1) it adds another layer of addressing (po...
694 0
<转 >socket穿透代理代码(C++版)
本文转自 http://blog.csdn.net/bodybo/article/details/7274865 写代码经常会遇到socket要通过代理连接服务器的情况,代理类型通畅有三种:HTTP、SOCK4和SOCK5,通过学习和网上参考相关代码,写了个代理类来实现该功能,贴出来与大家共享 ...
573 0
858
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载