c#中如何实现客户端TCP短连接?

flywolf88 2010-04-16 02:55:36
现在采用的方法是:连接---发送---接收---关闭连接,但是,在发送频率比较高的时候,用Socket的close关闭连接不起作用,在十分钟之内就会出现“目标机器积极拒绝连接”的错误,请问如何才能真正关闭连接(注:服务器端是台硬件设备,不可控制,只能在客户端解决)?或者改为长连接的时候,如何处理数据“粘包”的情况?
...全文
510 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
换句话说,你的这台所谓的“硬件设备”是个正经、成熟设备么?如果是,它有文档吧?!请你看文档来开发你的客户端。


顺便说一下,不论是长连接还是短连接,都是从服务器端来决定。短连接之下,服务器端注重于极高的并发处理性能,而并不花时间保持单个连接的链路状态;长连接则相反,专门花时间来维系单个客户端的链路状态,而牺牲了高并发性能。
soulsteal 2010-04-16
  • 打赏
  • 举报
回复
有协议你的服务器都不能处理粘包,那你找谁?
服务器做的是短连接,你客户端怎么连都是短连接...
这些问题根本原因就在服务端,而不在客户端
  • 打赏
  • 举报
回复
“注:服务器端是台硬件设备,不可控制,只能在客户端解决”

那还能解决?所谓“粘包”之类的,是你这台硬件设备上出的吧!你不能修改这台设备上的软件,那么就把它退货吧!
POWER_WONG 2010-04-16
  • 打赏
  • 举报
回复
顶一下
flywolf88 2010-04-16
  • 打赏
  • 举报
回复
我晕,不用协议怎么进行通讯,正是使用了自定义协议,才会有粘包现象的发生。服务端为什么要给你掐了?你不如直接说服务端宕机。
soulsteal 2010-04-16
  • 打赏
  • 举报
回复
我服务端直接给你掐了你连个什么劲...
soulsteal 2010-04-16
  • 打赏
  • 举报
回复
这么多人做通讯都不用协议的?
flywolf88 2010-04-16
  • 打赏
  • 举报
回复
再顶,急啊,同志们来帮忙啊
flywolf88 2010-04-16
  • 打赏
  • 举报
回复
自顶,在线等………………
flywolf88 2010-04-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sp1234 的回复:]
换句话说,你的这台所谓的“硬件设备”是个正经、成熟设备么?如果是,它有文档吧?!请你看文档来开发你的客户端。


顺便说一下,不论是长连接还是短连接,都是从服务器端来决定。短连接之下,服务器端注重于极高的并发处理性能,而并不花时间保持单个连接的链路状态;长连接则相反,专门花时间来维系单个客户端的链路状态,而牺牲了高并发性能。
[/Quote]
可以肯定的说,这个“硬件设备”是个成熟的商业产品。所谓长、短连接是指点对点设备之间连接的方式,长连接可以由服务端维护,也可以由客户端连接。“粘包”是指一个逻辑包分多次传输或者多个逻辑包一次就传输完毕,这是tcp传输的普遍特点。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧