您的位置:首页 > 职场人生

黑马程序员<.net学习---Socket套接字>

2013-09-21 22:25 204 查看
---------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流!
----------------------
今日学习内容:Socket套接字

        socket的概念:

              socket的英文原义是“孔”或“插座”。作为进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句
柄。 

             socket非常类似于电话插座。以一个国家级电话网为例,电话的通话双方相当于相互通信的2个进程,区号是它的网络地址;区内一个单位的交换机相当于一台主机,主机分配给每个用户的局内号码相当于socket号。任何用户在通话之前,首先要占有一部电话机,相当于申请一个socket;同时要知道对方的号码,相当于对方有一个固定的socket。然后向对方拨号呼叫,相当于发出连接请求(假如对方不在同一区内,还要拨对方区号,相当于给出网络地址)。假如对方在场并空闲(相当于通信的另一主机开机且可以接受连接请求),拿起电话话筒,双方就可以正式通话,相当于连接成功。双方通话的过程,是一方向电话机发出信号和对方从电话机接收信号的过程,相当于向socket发送数据和从socket接收数据。通话结束后,一方挂起电话机相当于关闭socket,撤消连接。
   

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

例如:http 使用80端口  ftp使用21端口,smtp使用23端口。

         类型:

               流式socket(STREAM):是一种面向连接的Socket,针对于面向连接的TCp服务应用,安全,但是效率低;

              数据报式Socket(DATADGRAM):是一种无线的Socket,对应于无线连接的UDP服务应用,不安全(丢失,顺序混乱,在接受端要分析重排及要求重发),但效率高!

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

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

            2.客户端client socket 连接服务器指定端口(负责接受和发送服务端消息)
            3.服务端welocoming socket 监听到客户端连接,创建connection socket.(负责和客户端通信)。

           部分代码:

//创建 服务端  负责监听的套接字 参数(使用ip4寻址协议,使用流式连接,使用Tcp协议传输数据)
Socket socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
//获取文本框中的IP地址对象
IPAddress ipAddress = IPAddress.Parse(ip.Text.Trim());
//创建IP和网络端口的网络节点对象
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress,int.Parse(duankou.Text));
//将负责监听的套接字 绑定到唯一的端口上
socket.Bind(ipEndPoint);
//设置监听队列的长度
socket.Listen(10);
//创建一个新的通信的套接字
Socket socketconnection=socket.Accept();

未完待续。。。

---------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流!
----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: