请教Socket通讯的问题

llsus llsus 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这是Socket的服务端,请看代码中的注释部分

s.Listen(100);
while (true)
{
byte[] bytes = new byte[1025];
Socket ss = s.Accept();
try
{
ss.ReceiveTimeout = 0;
while (true)
{
ss.Receive(bytes);
//这里我如何检测对方的连接已经断开?本来指望对方断开后这里会出现异常自动退出循环的,问题是对方断开后,依然可以接收到数据,并不发生异常
string rmsg = Encoding.Default.GetString(bytes);
rmsg = rmsg.Substring(0, rmsg.IndexOf('\0'));
textBox1.Text = textBox1.Text + rmsg;
if (rmsg == "close") break;
//当连接方没有发送close直接断开后,这里会进入死循环,并且持续得到连接方最后发来的一笔数据
}
ss = null;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
ss.Close();
}
}


请问如上注释部门的问题怎么解决?
...全文

相关推荐

Java socket通讯实现过程及问题解决

主要介绍了Java socket通讯实现过程及问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

weixin_38628183

GOLANG语言实现SOCKET通讯粘包问题解决示例

GOLANG语言实现SOCKET通讯粘包问题解决示例,对于TCP传输分段,组合无明显界线,造成传输和接收数据包不完整的解决方法!

csdn_gfz

C# Socket通讯常见问题详解

C# Socket通信三大问题之数据包界限符问题。   根据原项目中交通部标准,在连续观测站中数据包中,使用??两个字符表示有效数据包开始和结束。实际项目有各自的具体技术规范   C# Socket通信三大问题之数据包不连续问题。   在TCP/IP等通信中,由于时延等原因,一个数据包被Socket做两次或多次接收,此时在接收第一个包后,必须保存到TSession的DatagramBuffer中,在以后一并处理   C# Socket通信三大问题包并发与重叠问题。   由于客户端发送过快或设备故障等原因,一次接收到一个半、两个或多个包文。此时,也需要处理、一个半、两个或多个包   

weixin_38707240

进程间的实时通讯方案: local socket(解决扩展和容器应用的实时通讯问题)

1、原理文章:https://blog.csdn.net/z929118967/article/details/109616038 采用Local Socket方案(TCP)创建服务端和客户端从而达到通讯效果。 2、应用场景:解决扩展和容器应用的实时通讯问题

java、iOS、Vue

Socket 通讯

socket的通讯,有头部信息的通讯,进行接收头部信息后,然后在读取信息!

jianxinbobo
评论 13
收藏 已收藏
分享
返回顶部
llsus
C# 111,128 成员 642,537 内容