当前位置: 首页 > news >正文

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)

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

http://www.cnnetsun.cn/news/176155.html

相关文章:

  • Excalidraw助力技术文档可视化:提升沟通效率300%
  • Excalidraw绘图支持嵌入音频备注,多维信息承载
  • 15、利用Media Player畅享音乐与影视世界
  • Excalidraw实战:绘制AI模型训练流水线架构图
  • Excalidraw镜像提供专属技术支持通道,响应迅速
  • Excalidraw支持导出为Latex格式,学术写作福音
  • Excalidraw镜像提供用量统计报表,便于成本控制
  • Excalidraw支持RTL语言布局,拓展中东市场
  • Excalidraw支持外部数据源接入,打造动态仪表盘
  • Excalidraw新增自动布局功能,节省手动排版时间
  • 35、PowerShell 基础操作符及语句详解
  • 19、Windows 服务安全深度解析与防护策略
  • 31、Windows Server 2008 安全配置与管理全解析
  • 33、补丁管理全攻略
  • 32、PowerShell 文件处理全解析
  • 40、使用 COM 自动化 Windows 及相关应用
  • 50、PowerShell 管理脚本与操作示例详解
  • 78、计算机硬件、性能与网络问题排查及搭建指南
  • 基于Java+SpringBoot+SSM电脑商城系统(源码+LW+调试文档+讲解等)/电脑商城平台/电脑购物系统/计算机商城系统/在线电脑商城/电脑销售系统/电脑商城软件
  • Excalidraw助力技术布道师打造精彩演讲视觉素材
  • Excalidraw打造沉浸式头脑风暴环境,激发团队创造力
  • 一种新型几何形状被发送到国际空间站,很可能是3D打印的
  • Excalidraw绘图元素库持续更新,满足更多业务需求
  • Excalidraw如何保护用户隐私?数据存储策略说明
  • 用Excalidraw做技术分享?这些技巧让你事半功倍
  • 用自然语言生成图表?Excalidraw AI功能实测报告
  • Excalidraw + GPU算力 极速AI图形生成体验
  • 信息学奥赛一本通 1618:越狱 | 洛谷 P3197 [HNOI2008] 越狱
  • Excalidraw构建RFM模型:客户价值分层可视化
  • Vue.js入门指南:从核心特性到实战体验