A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 安玉波 中级黑马   /  2013-3-7 18:14  /  1918 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一、Socket相关概念        Socket的英文原义是“孔”或“插座”。作为进程通信机制,取后一种意思。通常也称作“套接字”,用于描述IP地址和端口,
一个通信链的句柄。(其实就是两个程序通信用的。)
        socket非常类似于电话插座。以一个电话网为例。电话的通话双方相当于相互通信的两个程序,电话号码就是IP地址。任何用户在通话之前,首先要占有一部电话机,相当于申请一个socket;同时要知道对方的号码,相当于对方有一个固定的socket。然后向对方拨号呼叫,相当于发出连接请求。对方假如在场并空闲,拿起电话话筒,双方就可以正式通话,相当于连接成功。双方通话的过程,是一方向电话机发出信号何从对方电话机接收信号的过程,相当于向socket发送数据和从socket接收数据。通话结束后,一方挂起电话机相当于关闭socket,撤销连接。
二、Socket的两种类型
        流式Socket(STREAM):是一种面向;连接的TCP服务应用,安全,但效率低;
        数据报式Socket(DATAGRAM):是一种无连接的Socket,对应于无连接的UDP服务应用,不安全(丢失,顺序混乱,在接受端要分析重排及要求重发),但效率高。
三、Socket一般应用模式(服务端和客户端)
       
          服务端welcoming  socket 开始监听端口(负责监听客户端连接信息)
        客户端client socket 连接服务端指定端口(负责接收和发送服务端消息)
        服务端welcoming  socket 监听到客户端连接,创建connection socket。(负责和客户端通信)
        服务端的Socket(至少需要两个):
        一个负责接收客户端连接请求(但不负责与客户端通信)
        每成功接收到一个客户端的连接便在服务端产生一个对应的Socket:在接收到客户端连接时创建;为每个连接成功的客户端请求在服务端都创建一个对应的Socket(负责和客户端通信)
        客户端的Socket:
        客户端Socket:必须指定要连接的服务端地址和端口。通过创建一个Socket对象来初始化一个到服务端的TCP连接。
四、Socket的通讯过程
        服务器端:申请一个socket;绑定到一个IP地址和一个端口上;开启侦听,等待接受连接。
        客户端:申请一个socket;连接服务器(指定IP和端口号)
        服务端接到连接请求后,产生一个新的Socket(端口大于1024)与客户端建立连接并进行通讯,原监听socket继续监听。
五、Socket的构造函数
       
        如:mySocket=new Socket(AddressFamily .InterNetwork, SocketType .Stream,SocketType.Tcp);       

        连接通过构造函数完成。
       
        public Socket(AddressFamily addressFamily,SocketType socketType ,SocketType protocolType)

        AddressFamily指定Socket用来解析地址的寻址方案。例如,InterNetwork 指示当Socket使用一个IP版本地址连接。
        SocketType 定义要打开的Socket类型。
        Socket类使用SocketType 枚举向Windows Sockets API 通知所请求的协议。


评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

2 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
正在学习,很好!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马