socket编程二

TCP可靠性的实现:
(1)校验码
(2)接收方反馈
(3)信息包附带序号

UDP:

(1)快 不需要花费时间建立和关闭连接

(2)快 偶尔丢失一两个消息包无所谓,但是TCP会严格检查

(3)快 UDP的限制是一个信息包不超过64KB的数据


TCP和UDP区别就是UDP不建立连接,只保证数据的完整性,数据传输快,但是不保证数据是否真的被收到,也不保证数据是够只接收一次,也不保证次序。

服务端是用来给一个或者多个客户端提供服务的,当客户端发起请求,开始等待服务端的返回结果,服务端接受完请求以后,根据自己的逻辑进行处理请求,并返回给客户端,客户端接收到返回结果以后,关闭和服务端的连接。

最常用个客户端和服务端有两种模式C/S(mysql)模式和B/S模式(网站)。

Socket 通信过程:

①服务端创建一个ServerSocket对象,指定端口号,ServerSocket对象等待客户端的连接请求。
②客户端创建一个Socket对象,指定主机地址和端口号,向服务端发出连接请求。
③服务端接收到客户端的连接请求,建立一条TCP连接,再创建一个Socket对象与客户端的Socket对象进行通信。
④服务端和客户端分别创建字节输入流和字节输出流,通过字节输入流获得对方发来的数据,通过字节输出流向对方发送数据。
⑤当一方决定结束通信时,向对方发送结束信息;另一方接收到结束信息后,双方分别关闭各自的TCP连接。
⑥ServerSocket对象停止等待客户端的连接请求。


socket不支持多并发,socketserver最主要的作用:就是实现一个并发处理,前面只是铺垫。 SocketServer主要是用于解决当多个客户端连接时, Socket服务端都会服务器上创建一个线程或进程来处理该客户端的请求,一个客户端对应一个后端的一个进程或者线程,这样增加系统的利用率。
socketserver就是对socket的再封装。SocketServer模块简化了网络服务器的开发。


你可能感兴趣的:(Python)