ReadTimeout属性(高手请进)

thunderwolf 2009-05-20 03:38:04
当我设置了ReadTimeout后,用Read去读数据,如果碰到超时情况时(触发IOException)后。下次再去读时,不管有没有数据,没有延时,就超时(触发IOException),不知道什么原因,我用的是VS2005。
...全文
1165 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
showjancn 2009-05-20
  • 打赏
  • 举报
回复
mark
thunderwolf 2009-05-20
  • 打赏
  • 举报
回复
看了!但是是有关闭 tcpClient.Close();我不希望关闭连接的
光宇广贞 2009-05-20
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20020703/11/846238.html

和楼主一模一样的问题,这是N年前的问答。
thunderwolf 2009-05-20
  • 打赏
  • 举报
回复
不是!是socket通信



private void sendrfiddata()
{
string receiveData = "";
string carband = textBox2.Text;

tcpClient2.ReceiveTimeout = 1000;

senddata.WriteLine("entrybalance," + carband);
senddata.Flush();

try
{
byte[] Data = new Byte[400];
Int32 bytes = ns.Read(Data, 0, Data.Length);
receiveData = Encoding.Default.GetString(Data, 0, bytes);

}
catch (Exception e)
{}



就是我向服务发送一条数据的时候,返回超过1秒的时候,就自动放弃者条数据。但如果还有超时的数据,继续放弃数据。如果没有
超时的数据,则可以正常接收数据
大飞飞虫 2009-05-20
  • 打赏
  • 举报
回复
什么readtimeout?

你出现异常后,要用

try
{
}
catch
{
处理异常
}
finally
{
一定要把你的IO关闭掉
}
灯火斑斓 2009-05-20
  • 打赏
  • 举报
回复
你用的是serialport组件吗?不管怎样,遇到超时的情况,应该要处理异常恢复到正常接收状态。如果用serialport组件进行串口通信开发,应该用DataReceived来触发一个线程去读送达端口听数据。

110,538

社区成员

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

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

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