我正在用 C# 编写一个即时消息服务器用于学习目的。
我的问题是我应该使用同步还是异步套接字来处理 IM 客户端。目标是处理尽可能多的客户。
我不太确定,但据我所知,异步套接字的数据包不会按顺序到达,这意味着当您发送 2 条聊天消息并且存在延迟/滞后时,第二个消息可能会在第一个消息之前到达。这是正确的吗?如果是,有办法解决这个问题吗?
关于同步套接字:同步套接字是一个很好的解决方案吗?many客户?如果有新数据包,我是否必须循环检查每个套接字/连接?如果是的话,这不是很慢吗?
最后一个问题:假设我想实现一种通过协议(这是一个非标准二进制协议)发送文件(例如图像)的方法,我仍然可以在上传时发送消息吗?
目标是处理尽可能多的客户。
那么异步。它的扩展性要好得多。
我不太确定,但据我所知,异步套接字的数据包不会按顺序到达,这意味着当您发送 2 条聊天消息并且存在延迟/滞后时,第二个消息可能会在第一个消息之前到达。
TCP 保证一切都按顺序到达。
假设我想实现一种通过协议(这是非标准二进制协议)发送文件(例如图像)的方法,我仍然可以在上传时发送消息吗
我建议您使用单独的连接进行文件传输。使用第一个连接进行握手(确定要使用的端口并指定文件名等)。然后使用Socket.SendFile
在新套接字上传输文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)