【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,这个函数由调用者提供一个缓冲区保存结果,可以规避线程 安全问题

相关推荐
网络研究院6 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智6 天前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest6 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_6 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
2601_961845156 天前
粉笔行测题库|系统班|刷题
网络·百度·微信·微信公众平台·facebook·新浪微博
程序猿阿伟6 天前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome
InHand云飞小白6 天前
无人值守站点网络困境?工业级路由器IR315破解连接难题
网络·物联网·4g·工业路由器·4g路由器·iiot·蜂窝路由器
森G6 天前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt
江华森6 天前
TCP/IP 协议栈实战 — 7 个实验详解
网络·tcp/ip·智能路由器
酉鬼女又兒6 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php