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

相关推荐
Escalating_xu4 小时前
【C 语言】数据在内存中的存储:补码、大小端、整型陷阱与 IEEE 754 全解析
java·c语言·网络
爱跳舞的烤冷面5 小时前
Linux篇——网络编程
网络
Knight_AL6 小时前
基于 Netty 实现的 WebSocket 服务端
网络·websocket·网络协议
wuyk5557 小时前
《WiFi 嵌入式物联网开发全套实战》| 第 31 章 休眠唤醒 WiFi 断连、时间同步、网络恢复机制
网络·物联网·php
沫璃染墨8 小时前
从零入门计算机网络系列(一):计算机网络初识——从网络发展史到TCP/IP协议》
linux·网络·网络协议·tcp/ip·计算机网络
王大傻09288 小时前
堆叠注入(Stacked Queries Injection)详解:原理、利用与防御
服务器·网络·数据库·web安全·网络安全
艾芯微科技8 小时前
钰泰 ETA5055V330DD1E|SOT-223 3.3V LDO,低压差、大电流线性稳压选型分享
网络·单片机·嵌入式硬件·集成测试·51单片机
bigcarp8 小时前
安卓模拟器MUMU+tcpdump抓包Socket协议流量
服务器·网络·tcpdump
懂点Tech9 小时前
ctfshow MISC入门图片篇(信息附加):misc11解题思路
网络
charliejohn10 小时前
计算机考研 408 网络 Http协议综合题
网络