服务器和客户端 IP 套接字






3.30/5 (7投票s)
2004年4月13日
2分钟阅读

64289

8244
通过服务器提供服务,客户端使用服务,通过 IP 套接字。
- 下载演示 C/C++ 项目 (2) - 43.6 Kb
- 下载演示 VB 项目 (2) - 22.4 Kb
- 下载分发 - 28.1 Kb
- 下载源代码 - 22.2 Kb
- 下载函数文档 - 11.7 Kb
引言
此 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 毫秒。 这允许更快的传输,但机器会变得更忙。