如何判断一个Socket连接与否

yuanreid 2003-01-20 05:29:47
我使用如下代码判断是否应该断开连接,但是不能确定当前的状态是否为连接,只能判断tcpClient是否被实例化。

if(!Equals(tcpClient,null))
{
this.statusBar1.Panels[0].Text = "断开连接";
tcpClient.Close();
}
else
{
this.statusBar1.Panels[0].Text = "断开失败";
}

再有,在服务端是否应该用线程进行tcplistening监听?
...全文
67 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanreid 2003-03-11
  • 打赏
  • 举报
回复
up
yuanreid 2003-01-20
  • 打赏
  • 举报
回复
看来,用TcpClient和TcpListener不是很方便,我现在改用System.Net.Sockets.Socket和System.Net.IPEndPoint来完成Socket通信,这样在客户端或服务端才能判断是否连接。
另外,.NET的Socket方式,代码量比用BCB大了不少。可能更靠近Java吧!

不知大家是否也是这样写Socket程序的?
Billy_Chen28 2003-01-20
  • 打赏
  • 举报
回复
关注!
xuzhenhua21 2003-01-20
  • 打赏
  • 举报
回复
这样的例子我练过,在天极网有这样的文章,你可以找找,不好意思我在网吧上的,有空发给你,
jackyhzzjcn 2003-01-20
  • 打赏
  • 举报
回复
服务器端LISTEN一定要用Thread。
xuzhenhua21 2003-01-20
  • 打赏
  • 举报
回复
再有,在服务端是否应该用线程进行tcplistening监听?
回答这个,一定要的,
不然你的服务器窗体就象死掉一样,
这个我做个,比较,就是读取服务器端的时间,
劝你加一个线程吧
colin666 2003-01-20
  • 打赏
  • 举报
回复
client code:

MyServer = new IPEndPoint(myIP,Int32.Parse("2345"));
sock = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
sock.Connect(MyServer);
colin666 2003-01-20
  • 打赏
  • 举报
回复
MyServer = new IPEndPoint(myIP,Int32.Parse("2345"));
sock = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
sock.Bind(MyServer);
sock.Listen(10);
Socket aaa=sock.Accept();
if(aaa.Connected)
MessageBox.Show("connected");
jackyhzzjcn 2003-01-20
  • 打赏
  • 举报
回复
使用CanRead,CanWrite判断不行?
yuanreid 2003-01-20
  • 打赏
  • 举报
回复
up
yuanreid 2003-01-20
  • 打赏
  • 举报
回复
大家不要吝啬嘛!!
yuanreid 2003-01-20
  • 打赏
  • 举报
回复
System.Net.Sockets.Socket类好像可以,但是怎么绑定啊?

110,534

社区成员

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

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

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