SOCKET Communication writen in C# (6) Socket 状态行为

 1.Socket..::.Poll 方法  确定 Socket 的状态。

 

mode
类型: System.Net.Sockets..::.SelectMode

SelectMode 值之一。

可以判断当前SOCKET,是否可以发送,可读等状态

MSDN:

http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socket.poll.aspx

示例能够很清楚说明用法

 

 2.需要确定多个socket的状态,确定一个或多个套接字的状态。 Socket..::.Select 方法

MSDN很清楚了:http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socket.select.aspx

 

3.Socket..::.SetSocketOption 方法  设置 Socket 选项

  Socket 选项用来确定当前 Socket 的行为

  起什么作用的:

     我理解的: 因为在TCP协议包中的很多标志位中的设置对外进行API的开放的需求

     有的协议包标志位flag可以用bool表示,有得可以用对象来开放API,有的是直接字节传个.net的socket机制

 

所以有Socket..::.SetSocketOption 方法 提供了四重重载

http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socket.setsocketoption.aspx

 

 

 

      对 LingerOption的操作, LingerOption是属于对象,所以使用第三个重载方法,将指定的 Socket 选项设置为指定值,表示为对象。

LingerOption myOpts = new LingerOption(true,1); mySocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, myOpts);

http://msdn.microsoft.com/zh-cn/library/system.net.sockets.lingeroption.aspx

 

        s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000);

整数的方式来设置

 

        BOOL的方式可以设置的很多,其中Keep-Alive的处理;MSDN:

http://msdn.microsoft.com/zh-cn/library/e160993d.aspx

 

 

同样 IOControl方法也是同样的概念,只是针对的设置对象不一致

MSDN解释: 为 Socket 设置低级别操作模式。

 

 

以TCP协议中的Keep-Alive数据包功能为例

SetSocketOption确定是否在当前socket中使用该心跳包功能

IOControl这个方法则设置如果使用该功能的具体的时间间隔和使用参数是怎么设置的

 

具体更详细的使用网上有篇文章<C#中利用Keep-Alive处理Socket网络异常断开的方法>介绍的满清楚

 

所以看来,有时间还是要把TCP/IP协议好好看看再

 

 

 

 

4...::.Connected 属性

    Connected 属性获取截止到最后的 I/O 操作时 Socket 的连接状态。当它返回 false 时,表明 Socket 要么从未连接,要么已断开连接。

    Connected 属性的值反映最近操作时的连接状态,而不是当前的状态

http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socket.connected.aspx

如果您需要确定连接的当前状态.............据说是没用...这个我还没有测试过.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值