套接字编程中读取数据的错误

本文关键字:错误 数据 读取 编程 套接字 | 更新日期: 2023-09-27 17:58:04

我写了一个控制台应用程序。我使用了套接字编程。我在下面的代码中出错。数据传输速度为10ms。一段时间后,我在"while((i=stream.Read(bytes,0,bytes.Length((!=0("行上得到一个错误。
while (true)
{
    TcpClient tcpClient = tcpListener.AcceptTcpClient();
    NetworkStream stream = tcpClient.GetStream();
    String data = null;
    int i;
    while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
    {
        // Translate data bytes to a ASCII string.
        data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
        Console.WriteLine("Received: {0}", data);
       ...
    }

错误:

类型为"System"的未处理异常。中发生IO.IOExceptionSystem.dll附加信息:无法从传输连接:连接尝试失败,因为关联方在一段时间后未做出适当回应,或建立的连接失败,因为连接的主机无法回应

套接字编程中读取数据的错误

当你做IO或网络工作时,你的代码需要能够处理异常情况,比如说,使用套接字,服务器突然关闭了连接端,你的程序需要能够处理。您的代码不会对该异常执行任何操作。

要做到这一点,你需要把你的代码放在一个尝试/捕获块

try
{
    // put socket code stuff here
}
catch(IOException ioe)
{
    // put excpetion code here.
}

希望这能有所帮助。