欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 2.Socket 编程 UDP

2.Socket 编程 UDP

2025/6/15 11:45:22 来源:https://blog.csdn.net/2401_86931059/article/details/148313501  浏览:    关键词:2.Socket 编程 UDP

1.UDP网络编程

0.背景知识

自实现IP转化

相关函数理解 

IP相关理解

1. V2版本 - DictServer封装版

实现一个简单的英译汉的网络字典

Dict.hpp

dictionary.txt

InetAddr.hpp

• 在 InetAddr 中,重载一下==方便对用户是否是同一个进行比较

Log.hpp

makefile

Mutex.hpp

UdpClient.cc

UdpServer.cc

UdpServer.hpp

2.V3版本 - 简单聊天室

Cond.hpp(条件变量)

InetAddr.hpp

Log.hpp

makefile

Mutex.hpp

Route.hpp

Thread.hpp

ThreadPool.hpp

UdpClient.cc

 udp 是全双工的。既可以读,也可以写,可以同时读写,不会多线程读写的问题.

• 多线程客户端,同时读取和写入

 

UdpServer.cc

UdpServer.hpp

附录1:

附录2:

 UdpServer.cc中3. 网络服务器对象,提供通信功能

附录(杂):
 

基于 IPv4 的 socket 网络编程,sockaddr_in 中的成员 struct in_addr
sin_addr 表示 32 位 的 IP 地址
但是我们通常用点分十进制的字符串表示 IP 地址,以下函数可以在字符串表示 和
in_addr 表示之间转换;
inet_ntoa 这个函数返回了一个 char*, 很显然是这个函数自己在内部为我们申请了一块
内存来保存 ip 的结果. 那么是否需要调用者手动释放呢?
man 手册上说, inet_ntoa 函数, 是把这个返回结果放到了静态存储区. 这个时候不需要
我们手动进行释放
明确提出 inet_ntoa 不是线程安全的函数;

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com