当前位置: 首页 > news >正文

Tcp 通信简单demo思路

Server 端
--------------------------  初始化部分 -------------------------------
1.创建监听套接字: 使用socket(协议家族,套接字的类型,0)
套接字类型有 SOCK_STREAM:表示面向连接的套接字(Tcp协议); 
SOCK_DGRAM:表示无连接的数据报套接字(Udp协议);
当指定具体使用的协议之后,第三个参数一般传0.
2.保存套接字地址:一般IPV4协议类型使用的是struct sockaddr_in套接字地址类型
struct sockaddr_in
{
sin_family;  // 保存协议类型
sin_port;     // 保存端口号 (一般从外部传进来) 注意要转成网络字节序
sin_addr;    // 保存要绑定的ip地址 (0.0.0.0可以响应其他主机连接任意本地ip)
                                  // 注意要字符串转点分式十进制整数类型且要保证网络字节序
}
3.将套接字地址绑定到套接字:bind(_listenfd, (const struct sockaddr*), socklen_t);
4.监听套接字:listen(sockfd, backlog);
-------------------------- 运行部分 -----------------------------------
5.创建套接字地址(用于保存客户端套接字地址);
6.从监听套接字上接收客户端的连接请求;int sockfd = accept(_listenfd, ...);
7.进行通信!!!  TCP协议可以直接使用write和read系统调用实现跨网络的进程间通信
Client 端
--------------------------  初始化部分 -------------------------------
1.需要从外部传入server的ip和端口号
2.创建套接字; client不需要为自己的套接字显示绑定套接字地址,而是由操作系统在请求连接的时候默认分配;
3.解析外部传入的server套接字地址并保存到栈区
4.请求连接: connect(sockfd, (const struct sockaddr*), socklen_t );
5.进行通信!!!  TCP协议可以直接使用write和read系统调用实现跨网络的进程间通信

相关文章:

  • 一键设置动态域名+ipv6内网直通访问ssh服务-家庭云计算专家
  • 活动营销的数字化转型浪潮:从传统场景到极效361的智能跃迁
  • 为什么使用Less替代原始CSS?
  • Vue3 + Node.js 实现客服实时聊天系统(WebSocket + Socket.IO 详解)
  • 深入理解操作系统:从基础概念到核心管理
  • C++类和对象:构造函数、析构函数、拷贝构造函数
  • Ubuntu Linux系统配置账号无密码sudo
  • 电容知识小结
  • 【FAQ】HarmonyOS SDK 闭源开放能力 — PDF Kit
  • Oracle数据库DBF文件收缩
  • CMU-15445(3)——PROJECT#1-BufferPoolManager-Task#1
  • 大模型深度思考与ReAct思维方式对比
  • GPIO 输出模式下读取电平异常解析
  • 软考错题(三)
  • 亚马逊推出新型仓储机器人 Vulcan:具备“触觉”但不会取代人类工人
  • 涨薪技术|0到1学会性能测试第52课-Tomcat调优技术
  • [ linux-系统 ] 权限管理
  • Web开发-JavaEE应用SpringBoot栈ActuatorSwaggerHeapDump提取自动化
  • 【写作格式】写论文时常见格式问题
  • 数据中台-数仓分层结构【Doris】
  • 看展览|2025影像上海艺博会:市场与当代媒介中的摄影
  • “爱鸟周”为何不能像FI和花展那样“市区联动”
  • 江淮、极氪、奇瑞,排着队造“劳斯莱斯”
  • 保利发展前4个月销售额约876亿元,单月斥资128亿元获4个项目
  • 云南省司法厅党委书记、厅长茶忠旺主动投案,正接受审查调查
  • 上海虹桥高铁站拦门事件反转,谁在带偏网友?