news 2026/6/23 20:37:32

33、Windows网络编程:套接字、服务与数据报

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
33、Windows网络编程:套接字、服务与数据报

Windows网络编程:套接字、服务与数据报

在网络编程领域,Windows Sockets提供了强大的功能,可用于构建各种客户端/服务器应用系统。下面将详细介绍Windows Sockets的相关知识,包括线程安全的DLL策略、数据报的使用、与Berkeley Sockets的对比、重叠I/O以及Windows服务等内容。

1. 线程安全的DLL策略

在开发线程安全的库函数时,有不同的策略可供选择。

1.1 传统策略的问题

传统的将TLS和其他技术结合创建线程安全库的方式,如Program 12 - 5,存在一些弱点。首先,状态与线程关联而非与套接字关联,导致一个线程一次只能处理一个套接字;其次,存在资源泄漏的风险,例如某些线程(如接受线程)可能永远不会终止,从而无法从DLL中分离。

1.2 替代策略

一种有效的替代方法是创建一个类似句柄的结构,并将其传递给每个函数调用。状态将保存在该结构中,应用程序可以显式管理状态,这样一个线程就可以管理多个套接字,甚至可以在纤程中使用套接字。许多UNIX和Linux应用程序使用这种技术创建线程安全的C库,不过缺点是函数需要额外的状态结构参数。

Program 12 - 6对Program 12 - 5进行了修改,不再需要某些特定的操作,但新增了两个用于初始化和释放状态结构的函数,发送和接收函数只需进行最小的更改。相关的服务器程序在示例文件中,只需进行轻微修改即可创建和关闭套接字句柄。

2. 数据报(Datagrams)

数据报类似于邮件槽,在相似的场景中使用。发送方和接收方之间没有连接,并且可以有多个接收方。无

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 17:51:06

Excalidraw助力技术文档可视化:提升沟通效率300%

Excalidraw:让技术沟通“所见即所得” 在一次跨时区的架构评审会上,团队争论了整整40分钟——不是因为系统设计有多复杂,而是因为没人能准确理解文档里那句“服务通过中间层聚合后暴露给前端”到底意味着什么。直到有人打开 Excalidraw&…

作者头像 李华
网站建设 2026/6/23 14:15:38

Excalidraw绘图支持嵌入音频备注,多维信息承载

Excalidraw绘图支持嵌入音频备注,多维信息承载 在远程协作成为常态的今天,一个简单的白板已经无法满足复杂系统设计的需求。我们常常遇到这样的场景:会议中花半小时讲解架构图,会后别人却只记得“有个框连着另一个框”&#xff1b…

作者头像 李华
网站建设 2026/6/23 15:52:26

15、利用Media Player畅享音乐与影视世界

利用Media Player畅享音乐与影视世界 在日常使用电脑时,除了完成工作,我们也希望能将其打造成一个娱乐中心,尽情享受音乐、电影带来的乐趣。Windows XP的Media Player 10就能满足我们的这一需求,它可以播放CD、DVD、电视节目、MP3和WMA音乐文件,还能收听网络电台,同时具…

作者头像 李华
网站建设 2026/6/23 10:46:49

Excalidraw实战:绘制AI模型训练流水线架构图

Excalidraw实战:绘制AI模型训练流水线架构图 在当今AI工程实践中,一个常见的挑战是:如何让算法工程师、数据科学家和系统架构师在远程协作中快速达成对模型训练流程的共识?传统的PPT草图往往表达不清,而复杂的UML工具又…

作者头像 李华
网站建设 2026/6/23 15:51:02

Excalidraw镜像提供专属技术支持通道,响应迅速

Excalidraw 镜像服务:让可视化协作更高效、更可靠 在远程办公成为常态的今天,团队如何快速对齐思路、清晰表达复杂架构,成了影响效率的关键一环。尤其是在技术讨论中,一张随手画出的草图,往往比千言万语更能直击问题本…

作者头像 李华
网站建设 2026/6/23 15:16:22

Excalidraw支持导出为Latex格式,学术写作福音

Excalidraw 与 LaTeX 的完美融合:让手绘图走进学术论文 在撰写科研论文或技术文档时,你是否曾为插图风格不统一而烦恼?精心绘制的系统架构图插入 LaTeX 文档后,字体、线条粗细与正文格格不入;每次修改都要重新截图、替…

作者头像 李华