day28 8_7 网络编程之tcp协议】的更多相关文章

一.socket模块 socket模块就是用来网络搭建的模块,socket也叫套接字. 创建网络连接,需要使用两个模块进行模拟,一个作为server服务器端,一个作为client客户端. 在服务器端,需要先申明一个socket,再使用bind等待接入,需要传入IP地址和端口号,这里注意,这两个需要放在一个元组里. 再调用server.listen输入接入的连接池大小,也就是最大可以接受多少客户端的等待. 服务器端: import socket server = socket.socket() s…
网络编程tcp协议与socket以及单例的补充 一.单例补充 实现单列的几种方式 #方式一:classmethod # class Singleton: # # __instance = None # # @classmethod # def singleton(cls): # # if not cls.__instance: # cls.__instance = cls() # # return cls.__instance # # obj1 = Singleton.singleton() #…
了解网络就要了解一些基本的协议今天主要跟大家分享一些关于TCP 协议UDP协议的相关知识 首先介绍一下TCP协议 TCP(Transmission Cintrol Protocol)可靠的.面向连接的协议如:打电话.传输效率低全双工通信(发送缓存和接受缓存,面向字节流,使用TCP的应用:Web浏览器;电子邮件,文件传输程序. UDP(User Datagram Protocol)不可靠,无连接的服务,但是传输效率高(发送前延时小),一对一,一对多,多对一,多对多,面向报文,尽最大努力服务,无阻塞…
TCP 通信的客户端:向服务器发送连接请求,给服务器发送数据,读取服务器会写的数据 表示客户端的类: java.net.Socket;此类实现客户端套接字.套接字是两台机器间通信的端点 套接字:包含了IP地址和端口号的网络单位. 构造方法: Socket(string host,int port) 创建一个流套接字并将其连接到指定主机上的指定端口号. 参数: string host:服务器主机的名称/服务器的IP地址. int port: 服务器的端口号 成员方法: OutputStream g…
上次所写的代码中,客户端和服务器端所进行的数据传输所用的是字节流. 优化: A:这次,为了高效,对这个字节流通过转换流来进行包装,包装成高效字符流. B:这次,传输的数据是通过键盘录入的数据. 服务器端代码: /* TCP协议: 服务器端 */ public class ServerDemo { public static void main(String[] args) throws IOException { // 创建socket接收端对象监听 ServerSocket ss = new…
TCP传输 Socket和ServerSocket 建立客户端和服务器 建立连接后,通过Socket中的IO流进行数据的传输 关闭socket 同样,客户端与服务器是两个独立的应用程序 TCP协议发送和接收数据的思路图解: TCP传输-客户端思路 1:建立客户端的Socket服务,并明确要连接的服务器. 2:如果连接建立成功,就表明,已经建立了数据传输的通道.就可以在该通道通过IO进行数据的读取和写入.该通道称为Socket流,Socket流中既有读取流,也有写入流. 3:通过Socket对象的…
1.1 概述: TCP协议通过三次握手协议将客户端与服务器端连接,两端使用各自的Socket对象.Socket对象中包含了IO流,供数据传输. 即:TCP协议在客户端与服务器端通过Socket组成了IO通道,数据在IO通道中传输,客户端传输的数据成队列方式写出,服务器端接收,同样服务器端传输的数据成队列方式写出,客户端接收. tcp协议的特点:面向连接.可靠(安全).效率慢 类似于我们生活中的打电话 举例:上网 --> 满足http协议(使用的还是tcp的还一套,因为http是tcp的子协议)…
TCP实现多用户上传文件: 需要同时给多用户上传文件,这样就得用多线程来实现. 实际上,这样的话,上传的先后顺序和速度就跟客户端的带宽有关:带宽够,就容易抢占到线程的执行权: 首先,创建个线程类:(这个线程类执行的是服务器的功能) 线程类代码: public class UserThread implements Runnable { // 构造方法接收对象 private Socket s; public UserThread(Socket s) { this.s = s; } public…
TCP练习: 1.客户端键盘录入,服务器输出文本文件 客户端代码: public class ClientDemo { public static void main(String[] args) throws IOException { // 创建socket对象 Socket s = new Socket("172.19.12.233", 10010); // 创建键盘输入流,用转换流包装成字符流 BufferedReader br = new BufferedReader(new…
上次的是上传TXT文件,这次上传的是图片.同样,上传成功需要反馈给客户端. 区别: TXT文件用记事本打开,我们可以看得懂,所以用了缓冲字符流,对通道内的字节流进行包装了. 而图片用记事本打开,我们看不懂,所以就用缓冲字节流,只需要把通道内的字节流转换成高效字节流就可以了. 客户端: public class ClineDemo { public static void main(String[] args) throws IOException { // 创建Socket对象 Socket s…