套接字编程中读取数据的错误
本文关键字:错误 数据 读取 编程 套接字 | 更新日期: 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.
}
希望这能有所帮助。