网络-socket相关(1)

原创 2004年06月24日 17:56:00

TCPClient:

   主要方法:

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

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

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

 

TcpListener:

   主要方法:

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

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

      AcceptTcpClient(),AcceptSocket():从传入连接队列移除连接。AcceptTcpClient 方法从队列移除连接,返回TcpClientAcceptSocket 方法返回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。如果在此范围之外,或路由器不支持多路广播,则引发 SocketExceptionUdpClient 成为多路广播组的成员,就能够接收发送到指定 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 类才能侦听网络广播

网络编程 ——socket基本概念

1、网络中进程之间如何通信? 2、Socket是什么? 3、socket的基本操作 3.1、socket()函数 3.2、bind()函数 3.3、listen()、connect()函数...
  • liu943367080
  • liu943367080
  • 2015年04月16日 22:45
  • 360

有关网络编程的一些面试

1,首先说明socket是什么??       我们知道:信息的交互需要涉及到tcp的四层模型              从上图可以看到:底层的东西已经被内核实现了,即我们通常意义上的内核协议栈(传...
  • msdnwolaile
  • msdnwolaile
  • 2016年05月25日 02:43
  • 1549

Android 网络编程(1)——Socket编程So easy

总结: 1、服务器端监听阻塞,accept一直阻塞到建立连接成功 2、客服端创建Socket对象阻塞,一直阻塞到建立连接成功 3、客服端与服务器端通过Socket的输入流进行接收数据,输出流进行发送数...
  • Thanksgining
  • Thanksgining
  • 2015年02月06日 10:24
  • 7812

常见的网络编程面试题

1:tcp和udp的区别 TCP:是面向连接的流传输控制协议,具有高可靠性,确保传输数据的正确性,有验证重发机制,因此不会出现丢失或乱序。 UDP:是无连接的数据报服务,不对数据报进行检查与修改,...
  • weiyuefei
  • weiyuefei
  • 2015年12月27日 18:57
  • 9107

Linux Socket 相关函数作用及参数详细分析

1、socket()函数 int socket(int domain, int type, int protocol); 参见/usr/include/bits/socket.h ...
  • lee244868149
  • lee244868149
  • 2015年02月11日 11:22
  • 2311

socket相关函数

socket相关函数socket函数socket函数返回套接字描述符int socket(int socket,int type,int protocol)若成功返回非负描述符,失败返回-1. f...
  • LMFQYJ
  • LMFQYJ
  • 2017年03月30日 23:16
  • 168

【VS开发】socket编程原理

socket编程原理 1、问题的引入 1) 普通的I/O操作过程: UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一...
  • LG1259156776
  • LG1259156776
  • 2016年03月07日 08:54
  • 2234

socket网络编程(2):socket操作相关函数

1、setsockopt()可以用来设置接收、发送超时 int TimeOut=30000;//设置接收超时30秒 if(setsockopt(m_SocketClientCommand,SOL_SO...
  • milanleon
  • milanleon
  • 2014年07月19日 10:48
  • 997

网络编程学习笔记一:Socket编程

“一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。 ——有感于实际编程和开源项目研究。 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打...
  • gneveek
  • gneveek
  • 2013年03月21日 01:11
  • 121677

SOCKET相关资料1

从问题看本质:socket到底是什么? 分类: 4.网络与云2011-09-22 10:32 6039人阅读 评论(1) 收藏 举报 socket数据结构服务器网络serverunix...
  • H002399
  • H002399
  • 2015年05月07日 18:32
  • 213
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:网络-socket相关(1)
举报原因:
原因补充:

(最多只允许输入30个字)