关于TcpClient退出关闭处理

本文详细解释了如何正确关闭TcpClient实例,包括调用Flush(),Close(),和TcpClient.Close()的方法顺序,以及在处理TcpListener时,如何存储和管理已连接的客户端以确保资源释放和程序顺畅退出。
摘要由CSDN通过智能技术生成
TcpClient tcpClient = new TcpClient();
tcpClient.Connect("10.120.131.66", 22);
NetworkStream ns = tcpClient.GetStream();

    ns.Write(new byte[] { 0, 1, 2 }, 0, 3);
    byte[] buf = new byte[1024];
    int n = ns.Read(buf, 0, buf.Length);

ns.Flush();
ns.Close();
tcpClient.Close();

TcpClient退出建议参照上面代码依次调用ns.Flush();ns.Close();tcpClient.Close();这3个方法结束。

说明:

1.不用担忧重复调用出异常:上面3个方法在重复调用的情况下不会抛异常,也就是说你在同一个地方或者不同地方多次调用上面3个方法不会出异常。

2.不用担心对方已关闭连接出异常:即使对方已关闭连接,再调用上面3个方法也不会出异常。

TcpListener退出一般只需调用stop()结束端口占用。(最好用列表存储已经AcceptTcpClient()的所有连接客户端,客户端退出及时从列表中删除,在TcpListener结束时手动关闭列表中剩余的所有客户端。在某些时候需要关闭所有连接的客户端才会释放网络端口资源,否则再次侦听此端口显示已占用;同时,也方便程序顺利退出,如果客户端连接线程一直在通信,程序退出时清理线程会非常缓慢)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lzl_li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值