请教关于SOCKET断开再重新使用此TcpClient去连接服务器,会报出SOCKET正在连接的错误
代码如下:
TcpClient FTcpClient=new TcpClient();
FTcpClient.ReceiveTimeout = 10;
FTcpClient.SendTimeout = 10;
Host = "127.0.0.1 ";
Port = 9000;
pClient.ConnectSvr()
FTcpclient.DisconnectSvr();
FTcpClient.ConnectSvr(); --> 这里报错,10056错误, 错误信息是Socket is already connected
public bool ConnectSvr()
{
try
{
if (!FTcpClient.Connected)
FTcpClient.Connect(FHost, FPort);
return true;
}
catch (SocketException e)
{
return false;
}
}
public void DisconnectSvr()
{
if (FTcpClient.Connected)
{
FTcpClient.Client.Shutdown(SocketShutdown.Both);
FTcpClient.Client.Close();
}
}
始终没弄明白这是为什么,大家能指点一下嘛,谢谢了
[解决办法]
pClient.ConnectSvr()还占用着socket的啊!
先pClient.DisconnectSvr()
------解决方案--------------------
同一楼
[解决办法]
同意,先断再连,一定要close()
[解决办法]
先断再连,一定要close()
[解决办法]
pClient.ConnectSvr()
这句有些不同啊?
[解决办法]
public void DisconnectSvr()
{
if (FTcpClient.Connected)
{
FTcpClient.Client.Shutdown(SocketShutdown.Both);
FTcpClient.Client.Close();
}
}
客户端虽然是断开了。但服务器端是如何实现关闭当前连接的?
[解决办法]
pClient.ConnectSvr() 《--- ???
FTcpclient.DisconnectSvr();
FTcpClient.ConnectSvr(); --> 这里报错,10056错误, 错误信息是Socket is already connected
[解决办法]
pClient是什么?没看懂。。。
[解决办法]
我想知道,你服务器端怎么写的?
还有就是里面有
Host = "127.0.0.1 ";
Port = 9000;
但ConnectSvr()方法里又是
FTcpClient.Connect(FHost, FPort);
这里是怎么回事?