65.9K
CodeProject 正在变化。 阅读更多。
Home

服务器和客户端 IP 套接字

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.30/5 (7投票s)

2004年4月13日

2分钟阅读

viewsIcon

64289

downloadIcon

8244

通过服务器提供服务,客户端使用服务,通过 IP 套接字。

Sample Image

引言

此 DLL 提供了 19 个例程,以满足 C/C++ 和 VB 环境中客户端/服务套接字活动的应用程序需求。 实践表明,对于一个应用程序来说,20 个服务线程上的 400 个套接字就足够了。

背景

提供了七个服务器例程。 启动服务器线程后,该线程将创建一个监听套接字,该套接字将为其听到的每个客户端生成一个套接字。 当在套接字上听到消息时,将设置与该套接字关联的事件标志。 当服务器应用程序接受消息时,该标志将被重置。

提供了四个客户端例程。 启动客户端线程后,该线程将创建一个套接字,该套接字连接到所需的服务。 当在套接字上听到消息时,将设置与该套接字关联的事件标志。 当客户端应用程序接受消息时,该标志将被重置。

提供了八个辅助例程(供服务器和客户端使用);两个例程可以避免使用 %systemroot%\system32\drivers\etc\services. 文件;一个内务处理例程;一个重置例程;三个用于操作消息头信息的例程;一个用于将错误号转换为文本字符串的例程。

使用代码

VC 6.0 项目

  • SOCDLL.dll 放置在路径变量上的目录中。
  • 将库 SOCDLL.lib 添加到项目资源。
  • 将模块 SOCcalls.h 添加到项目。
  • 使用其中的例程。

VB 6.0 项目

  • 使用 regsvr32 注册 SOCDLL.dll
  • 将模块 SOCDLL.bas 添加到项目。
  • 使用其中的公共例程。

关注点

对于仅使用 C/C++ 的用户,可以使用提供的工作区和项目文件构建静态库。

演示程序

C/C++ 客户端可以与 C/C++ 或 VB 服务器一起运行。 VB 客户端可以与 C/C++ 或 VB 服务器一起运行。 C/C++ 或 VB 客户端的多个实例可以与 C/C++ 或 VB 服务器并发运行。

服务器为 CuService、AgService 和 AuService 派生三个服务器线程。 服务器在对客户端进行 21 次回复后关闭其套接字子系统。

客户端随机为上述服务派生三个可能的客户端线程之一。 客户端发送三个消息,消息类型随机选择 Abel、Baker、Charlie、Delta、Echo 或 Foxtrot。 客户端关闭其套接字子系统。

历史

  • 3.4 - SOC_Src.cpp 注释/日志维护。
  • 3.2 - 服务器端“select”超时从 50 毫秒减少到 1 毫秒。 这允许更快的传输,但机器会变得更忙。
© . All rights reserved.