我用C#做了一个客户端通信,发送数据并且需要接收数据。有时接收数据会太慢,比如返回需要1秒钟。现在如何设置,如果时间超过1秒钟就不需要这信息。
下条信息来了一样能正常工作!向大家请教。

解决方案 »

  1.   

    哈哈我刚解决这个问题我知道!
    while(true)
    {
    clientSocket.ReceiveTimeout=10000;设置接受信息,如果接受超时1秒则报异常
    try
    {
         clientSocket.Receive(data, 0, bufen, SocketFlags.None);
    }cach
    {
    continue;  //终止本次接受;
    }
    }
      

  2.   

    我测试了几次
    clientSocket.ReceiveTimeout=1000;设置接受信息,如果接受超时1秒则报异常 
    这是代表大于1秒就终止吗?不过我测试了几次都有问题。我的通信协议是这样的发送
     senddata.WriteLine("entrybalance," + carbrand);
     senddata.Flush();接收:
         byte[] Data = new Byte[400];
         Int32 bytes = ns.Read(Data, 0, Data.Length);
        string  receiveData = Encoding.Default.GetString(Data, 0, bytes);我这样也可以像你的那种方法吗?
      

  3.   

    可以你是写的一个线程,线程里写个循环不停的接受?
    clientSocket.ReceiveTimeout=1000这代表超过1秒就报出异常
    你在异常里写终止这次循环他不就接受下一条了?
    可以的我才测试.
      

  4.   

    你把你接收的方法写进try里面就行了
      

  5.   

    写进去了,在外面要加while(true) 吗?
    因为我这是发一次,接收一次!刚才用了那个方法测试,
    clientSocket.ReceiveTimeout=1000;貌似不起作用啊