当前位置:  开发笔记 > 运维 > 正文

高容量TCP客户端的设计

如何解决《高容量TCP客户端的设计》经验,为你挑选了1个好方法。

我有一个.NET TCP客户端,它向(.NET异步)TCP服务器发送大量消息.

我需要继续向服务器发送消息,但由于TIME_WAIT,我的客户端上的端口用完了.

如何在不使用所有可用端口的情况下持续可靠地发送消息?

有没有一种方法可以继续重用相同的套接字.我查看了Disconnect()和REUSEADDRESS套接字标志,但找不到它们使用的任何好例子.实际上大多数消息来源都说不使用Disconnect,因为它是用于较低级别的使用(即它只回收套接字句柄).

我想我需要切换到UDP,或者有一个使用C++和IOCP的方法?



1> Will Hartung..:

如果您的服务器和客户端知道数据的格式,您可以保持套接字打开.您正在关闭套接字,以便服务器可以"看到"客户端已"完成".

如果你有一些协议,那么服务器可以"知道"何时完成接收数据块.

您可以查找somekind的消息结束标记,您可以传入消息的长度,并根据大小等读取其余内容.不同的方法.

但没有理由不断打开和关闭与服务器的连接 - 这就是在这里杀死你的东西.

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有