黑马程序员--.Net学习日记——套接字

---------------------- Windows Phone 7手机开发Net培训、期待与您交流! ----------------------

黑马程序员--.Net学习日记——套接字

 

     套接字(socket)

     socket的英文原意是"""插座",作为进程通信机制,取后一种意思,通常也称作套接字,用于描述IP地址和端口,是一个通信链的句柄.(其实就是两个程序通信用的).

     Internet上有很多这样的主机,这些主机一般运行了多个服务软件.同时提供了n种服务,每种服务都打开一个socket,并绑定到一个端口上,不同的端口对应于不同的服务(应用程序).

 

两种类型:

     1.流式socket(stream)

     是一种面向连接的socket,针对于面向连接的TCP服务应用,安全但是效率低.

     2.数据报式

     是一种无连接的socket,对应于无连接的UDP服务应用,不安全(丢失,顺序混乱,在接收端要分析重排及要求重发),但效率高.

 

socket一般应用模式(服务器端和客户端)

     1.服务端welcoming socket开始监听端口(负责监听客户端连接信息)

     2.客户端client socket连接服务端指定的端口(负责接收和发送服务端消息).

     3.服务端welcoming socket监听到客户端连接,创建connection socket(负责和客户端通信).

 

服务器端的socket(至少需要两个)

     1.一个负责接收客户端连接请求(不负责与客户端通信).

     2.每成功接收到一个客户端的连接便在服务端产生一个对应的socket.

       (1).在接收到客户端连接时创建.

       (2).为每个连接成功的客户端请求的服务端创建一个对应的socket(负责通信).

 

客户端的socket

     1.必须指定要连接的服务器端地址和端口.

     通过创建一个socket对象来初始化一个到服务器端的TCP连接.

socket的通讯过程

     服务器端:

        1.申情一个socket

        2.绑定到一个IP地址和一个端口上.

        3.开启侦听,等待接收连接.

     客户端:

        1.申请一个socket

        2.连接服务器(指明IP地址和端口号).

     服务器端接到连接请求后,产生一个新的socket(端口大于1024)与客户端建立并进行通讯,原侦听socket继续侦听.

    

创建Socket的实例,可以通过Socket类的构造方法来实现:

      public Socket(AddressFamily AddressFamily,SocketType SocketType,ProtocolType protocolType );

      其中,addressFamily参数指定Socket使用的寻址方案,sockeType参数指定Socket的类型,protocolType参数指定Socket使用的协议.

      下面的语句创建一个Socket,他可用在基于TCO/IP的网络(Internet)上通讯.

      Socket temp=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

      如果使用UDP而不是TCP,需要更改协议类型,如下:

      Socket temp=new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);

 

      一旦创建了Socket,在客户端,可以通过Connect方法连接到指定的服务器,并通过Send方法向远程服务器发送数据,然后可以通过Receive从服务端接收数据:而在服务器端,需要使用Bind方法绑定所指定的接口使Socket与一个本地终结点相连,并通过listen方法侦听该接口上的请求,当侦听都用户端的连接是,调用Accept完成连接的操作,创建新的Socket以处理传入的连接请求.使用完Socket,使用Close方法关闭Socket

 

---------------------- Windows Phone 7手机开发Net培训、期待与您交流! ----------------------

详细请查看:http://net.itheima.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值