网络-socket相关(1)

来源:互联网 发布:matlab数据求模 编辑:程序博客网 时间:2024/05/29 11:05

TCPClient:

   主要方法:

      Connect(IPEndPoint),Connect(IPAddress,port),Connect(string dnsName,port)

      构造函数的参数和Connect的一样,但是参数指定本定地址。

      NetworkStream GetStream();获得向网络发送和接收数据的网络流,使用其 Write 和 Read 方法来发送和接收数据,Write和Read都为阻塞方法。

TcpListener:

   主要方法:

      构造函数:TcpListener(IPEndPoint),TcpListener(IPAddress,port)

      Start(),Stop():侦听请求。如果有,将对请求进行排队并继续侦听直到调用 Stop 方法。如果排队的连接数达到最大值后接收到连接请求,将引发 SocketException。

      AcceptTcpClient(),AcceptSocket():从传入连接队列移除连接。AcceptTcpClient 方法从队列移除连接,返回TcpClient。AcceptSocket 方法返回Socket。如果仅需要基本阻塞同步 I/O,可使用 AcceptTcpClient。要进行更加细化的行为控制,使用 AcceptSocket。

      Pending():确定列队里是否有连接可用。

UDPClient:

主要方法:

      Connect(IPEndPoint),Connect(IPAddress,port),Connect(string dnsName,port):使用指定的网络终结点建立默认远程主机

如果调用 Connect 方法,则从指定的默认地址以外的地址到达的任何数据报都将被丢弃。不能使用此方法将默认远程主机设置为广播地址,除非采用如下方法:从 UdpClient 继承,使用客户端方法获取基础 Socket,并将套接字选项设置为 SocketOptionName.Broadcast。

但是,如果在调用 Send 方法时指定了 IPAddress.Broadcast,则可以将数据广播到默认的广播地址:255.255.255.255。如果应用程序要求对广播地址有更好的控制,也可以恢复为使用 Socket 类。

      构造函数的参数和Connect的一样,但是参数指定本定地址。

      JoinMulticastGroup(IPAddress multicastAddr):将 UdpClient 添加到多路广播组。

      DropMulticastGroup():退出多路广播组

     public byte[] Receive(ref IPEndPoint remoteEP);返回已由远程主机发送的 UDP 数据文报

      Send:将 UDP 数据文报发送到远程主机

关于多路广播:

JoinMulticastGroup 方法将 UdpClient 预订到使用指定 IPAddress 的多路广播组中。调用该方法后,基础 Socket 将 Internet 组管理协议 (IGMP) 包发送到路由器,请求成为多路广播组成员。多路广播地址的范围从 224.0.0.0 到 239.255.255.255。如果在此范围之外,或路由器不支持多路广播,则引发 SocketException。 UdpClient 成为多路广播组的成员,就能够接收发送到指定 IPAddress 的多路广播数据报了,但是不需要属于多路广播组,就可以将数据报发送到多路广播 IP 地址。

必须使用多路广播端口号创建 UdpClient,否则将无法接收多路广播数据报。不要在调用 JoinMulticastGroup 方法之前调用 Connect 方法,否则 Receive 方法将不起作用--见UDPClient的connect方法。???对否?

加入多路广播组以前,请确保该UDP套接字已经绑定到端口或结束点上。为此需调用一个接收端口或结束点作为参数的构造函数。

==========

IP 版本 4 地址使用 32 位指定网络地址。对于使用 255.255.255.0 网络掩码的 C 类地址,这些位被分为四个八位字节。当以十进制数表示时,这四个八位字节构成熟悉的以点分隔的四部分表示法,如 192.168.100.2。前两个八位字节(此示例中为 192.168)构成网络号;第三个八位字节 (100) 定义子网;最后一个八位字节 (2) 是主机标识符。

将 IP 地址的所有位均设置为 1(即 255.255.255.255)可构成有限的广播地址。将 UDP 数据文报发送到此地址可将消息传递到该广播网络上的任何主机。由于路由器从不转发发送到此地址的消息,因此只有已连接的网络上的主机才可看到这些广播。

通过将部分地址的所有位全都设置为 1,可以将广播定向到特定的网络部分。例如,若要将广播发送到以 192.168 打头的 IP 地址标识的网络上的所有主机,请将地址的子网和主机部分全都设置为 1,如 192.168.255.255。若要将广播限制在单个子网,则只将主机部分设置全都为 1,如 192.168.100.255。

UdpClient 类可向任何网络广播地址广播,但它无法侦听发送到网络的广播。必须使用 Socket 类才能侦听网络广播

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lanwilliam/archive/2008/05/07/2408363.aspx

原创粉丝点击