【Linux】Socket编程UDP

1. V1版本:Echo server

简单的回显服务器和客户端代码

思路:

插入知识点:

  • client端要不要显示bind的问题
  • getline( ):
cpp 复制代码
std::getline(输入流, 字符串变量);

第 1 个参数:输入流(从哪里读)
可以是:
      cin:从键盘读
      ifstream:从文件读
   作用:告诉函数去哪里读取一行文字
第 2 个参数:字符串变量(读到哪里去)
   必须是 std::string 类型
   作用:把读到的一整行文字存进这个变量里
         函数会清空它 → 写入新行

代码实现:

UDP简单回显服务器和客户端代码

2. V2版本:DictServer

思路:

代码实现:

DictServer封装实现

3. V3版本:简单聊天室

思路:

代码实现:

简单聊天室代码实现

4. 补充

4.1 地址转换函数

  • 字符串转in_addr的函数:
  • in_addr转字符串的函数:

4.2 关于inet_ntoa

inet_ntoa把结果放到自己内部的一个静态存储区,这样第二次调⽤、用时的结果会覆盖掉上一次的结果

在多线程环境下,推荐使用inet_ntop,这个函数由调用者提供一个缓冲区保存结果,可以规避线程 安全问题

相关推荐
Shingmc32 小时前
【Linux】网络基础概念
linux·服务器·网络
思麟呀2 小时前
数据链路层和物理层
网络·网络协议·http·智能路由器
春蕾夏荷_7282977252 小时前
libhv vs2019 udp简单的实例
网络·udp·libhv·结构体
小苗卷不动3 小时前
UDP服务端收发流程
linux·c++·udp
阳光普照世界和平3 小时前
2026软件安全趋势解析:攻防迭代下,企业该如何破局?
网络·安全
被摘下的星星4 小时前
计算机网络的拓扑结构
网络·计算机网络
positive_zpc4 小时前
计算机网络——数据链路层(一)
网络·计算机网络
孙同学_4 小时前
【Linux篇】详解TCP/UDP传输层协议:全面拆解三次握手、四次挥手及可靠性机制
linux·tcp/ip·udp
Chengbei114 小时前
2026护网HVV面试看这篇就够了!真题+技巧+培训福利一站式get
网络·安全·web安全·网络安全·面试·职场和发展·安全架构