黑马程序员_网络编程

来源:互联网 发布:四方软件论坛 编辑:程序博客网 时间:2024/06/03 04:30

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

1. 套接字:Socket  用于描述IP地址和端口,是一个通信链的句柄(就是两个程序通信用的),类似于电话

2. 有两种类型:流式Socket(是一种面向连接的Socket,针对于面向连接的TCP服务应用,安全,但效率低);数据报式Socket(是一种无连接的Socket,对应于无连接的UDP服务应用。不安全(丢失,顺序混乱,在接收端要分析重排及要求重发),但效率高 )

3. 流式Socket必须有一个服务器端和客户端

4. 服务器套接字:开始监听端口(负责监听客户端连接信息)

客户端套接字:连接服务器指定端口(负责接收和发送服务端信息)

服务器连接套接字:监听到客户端连接,创建connection socket(负责和客户端通信

5. 服务器端的Socket(至少有两个):一个负责接收客户端连接请求(但不负责与客户端通信), 每成功接收到一个客户端的连接便在服务端产生一个对应的Socket(注意:在接收到客户端连接时创建;为每个连接成功的客户端请求在服务端都创建一个对应的Socket,负责和客户端通信)

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

7. Socket的通信过程: 

1)服务器端:申请一个Socket;绑定(socket.bind())到一个IP地址和一个端口上;开启侦听,等待接受连接

2)客户端: 申请一个Socket;  连接服务器(指明IP地址和端口号)

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

8.网络节点IPEndPoint(通过IP和端口产生)

9. 设置监听队列的长度:socket.listen(n)

10.Accept()会阻断当前线程

11.关闭对文本框的跨线程操作检查:TexBox.CheckForillegalCrossThreadCalls=false;

 ---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

0 0