来者分50%的分,正解 50%分,关于socket的简单问题。 我向服务器发送信息,然后启动一个线程用socket来等待服务器返回信息,等这时假如服务出问题,没有发回信息,这个线程就永远不会停止。大家是怎么解决这个问题呢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1. 通过socket的是否出现异常来判断,对方是否已经关闭。2. 超时关闭。 加一个超时代码:OutTime("时间") 在线程里加一个超时的异常判断,我不知道,你用的是不是TcpClient,TcpClient类里有一个.ReceiveTimeout 属性 等待的时间tcpClient.ReceiveTimeout = 5;if (tcpClient.ReceiveTimeout == 5) Console.WriteLine("The receive time out limit was successfully set " + tcpClient.ReceiveTimeout.ToString()); 呵呵,正解. 加入TimeOut.不過我想問一下,到底是用Vb或Delphi寫的Winsocket程序好,還是用c#的Net.Socket好!主要是性能:如CPU, 內存, 及運行速度問題. 这个问题刚进行了一个大探讨.可以参考一下.http://community.csdn.net/Expert/topic/4660/4660832.xml?temp=.6758692 搂住的意思是客户端和服务器已经连上了?那么TCP连接的接收端回报异常(接收信息的函数是阻塞的),根据异常结果可以判断出事什么情况的 如果是客户端要连接服务器,而服务器没开起,也会出异常的 我从《C#.net网络核心编程》上看的(FTP协议开发中): 做一个循环,循环次数为n, 每次检查服务器返回信息, 如n次都没返回,则退出该线程。 我记得里面专门有个函数可以判断socket连接是否意外的吧?还是顶~呵呵 异常加时间 判断if waiterTime>5 thentry……catch ……finally结束线程end try 事件的简单问题 C#的project在自编译的时候无法取得web的project内web.config的值 请教大虾们 再次发贴:重定向的问题 为什么这个地方要这样!! 文件监控的一点问题,请帮忙!!!! 求助一个关于播放器的问题.............. winform中的datagrid数据怎么邦定 在datagridview中检索数据的问题! C#中关于验证用户名是否存在并注册的问题 Remoting一个奇怪的问题,求助!!!!我是不是发错了版块? Winform,如何把webclient获取的cookie写到系统里面,再调用ie显示页面 C#如何创建一个权限可写的文件夹
2. 超时关闭。
我不知道,你用的是不是TcpClient,TcpClient类里有一个.ReceiveTimeout 属性 等待的时间tcpClient.ReceiveTimeout = 5;if (tcpClient.ReceiveTimeout == 5)
Console.WriteLine("The receive time out limit was successfully set " +
tcpClient.ReceiveTimeout.ToString());
http://community.csdn.net/Expert/topic/4660/4660832.xml?temp=.6758692
做一个循环,循环次数为n,
每次检查服务器返回信息,
如n次都没返回,则退出该线程。
还是顶~呵呵
if waiterTime>5 then
try
……
catch
……
finally
结束线程
end try