[黑马程序员九]:Socket网络编程

时间:2023-01-27 12:03:10

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

1.Socket:套接字

作为进程通信机制,用于描述IP地址和端口,是一个通信连的句柄,即用于两个程序之间进行通讯。

类似于电话呼叫过程:打电话双方(A,B)相当于2个互相通信的应用程序,电话机相当于申请的Socket,电话号码就是IP地址,双方通话过程相当于先通过IP连接,然后A向B的Socket发送数据和B从A的Socket接收数据,通话结束后,一方挂断相当于关闭Socket,撤销链接。

2.Socket类型

流式Socket(Stream)是针对于面向连接的TCP服务应用,安全,但效率低。

数据报式Socket(Datagram)是针对于无链接的UDP服务应用,不安全(易丢失,顺序混乱,在接收端分析重排和要求重发),但效率高。

3.Socket一般应用模式

a)        服务端welcome socket开始监听端口(监听客户端连接信息)

b)        客户端client socket连接服务端自定的端口(接收和发送服务端数据)

c)        服务端welcome socket监听到客户端连接,创建connection socket(于客户端进行通信)

服务端的Socket(至少2个):其中一个负责接收客户端连接(不负责通信);每成功接收一个客户端的连接便在服务端产生一个对应的Socket(在接收到客户端连接时创建,为每个连接成功的客户端请求在服务端都创建一个对应的Socket)

客户端的Socket:必须指定要连接的服务端地址和端口,通过创建一个Socket对象来初始化一个到服务端的TCP连接。

4.Socket通信过程

服务器端:申请一个socket,绑定到一个IP地址和一个端口上,开启侦听,等待接受连接。接到连接后产生一个新的socket(端口大于1024)与客户端连接并进行通讯,原socket继续侦听。

客户端:申请一个socket,连接到服务器(指明IP地址和端口号)

[黑马程序员九]:Socket网络编程