Python使用Tcp、Udp

本文介绍了TCP/IP四层模型,包括链路层、网络层、传输层和应用层的功能。重点讲解了TCP协议的可靠连接、端口的作用以及创建TCP/UDP套接字的过程。此外,还阐述了TCP与UDP的主要区别,TCP的三次握手和四次挥手过程,以及在实际网络程序中如何使用这些概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TCP/IP四层网络模型:

1、 链路层(数据链路层/网络接口层):包括操作系统中的设备驱动程序、计算机中对应的网络接口卡

2、 网络层(互联网层):处理分组在网络中的活动,比如分组的选路

3、 传输层:主要为两台主机上的应用提供端到端的通信

4、 应用层:负责处理特定的应用程序细节







实例:

假设在一个局域网(LAN)如以太网中有两台主机,二者运行FTP协议:


IP地址

** (1、IP地址被用来给Internet上的电脑一个编号。大家日常见到的情况是每台连网的PC上都需要有IP地址,才能正常通信。我们可以把‘个人电脑’比作‘一台电话’,那么‘IP地址’就相当于‘电话号码’,而Internet中的路由器,就相当于电信局的‘程控式交换机’。**

(2、IP地址是一个32位的二进制数,通常被分割为4个‘8位二进制数’(也就是4个字节)。IP地址通常用‘点分十进制’表示成(a,b,c,d)的形式,其中,a,b,c,d都是0~255之间的十进制整数,比如:192.168.0.1

(3、windows系统在命令提示符下输入‘ipconfig’命令查看本机IP地址。

TCP协议:

(1、TCP协议则是建立在IP协议之上的。TCP协议负责在两台计算机之间建立可靠连接,保证数据包按顺序到达。TCP协议会通过握手建立连接,然后,对每个IP包编号,确保对方按顺序收到,如果包丢了,就自动重发。

(2、许多常用的更高级的协议都是建立在TCP协议基础上的,比如用于浏览器的HTTP协议、发送邮件的SMTP协议等。

(3、一个TCP报文除了包含要传输的数据外,还包含源IP地址和目标IP地址,源端口号和目标端口号。



端口:

(1、 端口有什么作用?在两台计算机通信时,只发IP地址是不够的,因为同一台计算机上跑着多个网络程序。一个TCP报文来了之后,到底是交给浏览器还是QQ,就需要端口号来区分。每个网络程序都向操作

### 回答1: Python可以使用socket模块来实现TCPUDP协议传参。 对于TCP传参,可以使用socket模块中的socket函数创建一个套接字对象,然后使用bind方法绑定一个指定的主机地址和端口号。接着,可以使用listen方法监听连接请求,并使用accept方法接受客户端的连接。在建立连接之后,可以使用send方法向客户端发送数据,使用recv方法接收客户端发送的数据。 对于UDP传参,可以使用socket模块中的socket函数创建一个套接字对象,然后可以使用sendto方法将数据发送到指定的主机地址和端口号。在接收数据时,可以使用recvfrom方法从指定的地址和端口号接收数据。 使用TCP传参时,传输的数据是可靠的,即数据传输过程中不会丢失或损坏,但会保持原有的顺序。而使用UDP传参时,数据传输过程中可能会丢失部分数据或者传输顺序可能发生改变,但是传输速度较快,适合对实时性要求较高的场景。 需要注意的是,在使用TCPUDP传参之前,需要确保目标主机已经开启相应的端口,并且需要根据具体的需求选择合适的TCPUDP协议来传输数据。 ### 回答2: Python可以使用TCPUDP协议进行参数传递。 在使用TCP传参时,可以使用socket库来创建一个TCP客户端和服务器。客户端通过创建套接字,并使用connect()函数连接到服务器的IP地址和端口号。之后,可以使用send()函数将参数发送到服务器。服务器接收到参数后,可以使用recv()函数接收参数,并进行后续的处理。 在使用UDP传参时,同样可以使用socket库来创建一个UDP客户端和服务器。客户端通过创建套接字,并使用sendto()函数将参数发送到服务器的IP地址和端口号。服务器接收参数后,可以使用recvfrom()函数接收参数,并进行后续的处理。 无论是TCP还是UDP,客户端和服务器都需要事先约定好参数传递的格式和规则,以便正确地解析接收到的参数。 值得注意的是,TCP是一种可靠的连接协议,它保证数据的完整性和按序传输。而UDP是一种无连接的协议,它不保证数据的可靠性和按序传输,但是传输效率高。因此,在选择使用TCP还是UDP传参时,需要根据实际情况和需求来做出选择。 总结起来,Python可以使用TCPUDP协议进行参数传递。使用TCP时,需要创建TCP客户端和服务器,通过send()和recv()函数进行参数传递。使用UDP时,需要创建UDP客户端和服务器,通过sendto()和recvfrom()函数进行参数传递。传参时需要注意选择合适的协议,考虑到数据的可靠性和传输效率。 ### 回答3: 在Python中,我们可以使用TCPUDP协议来传递参数。 1. TCP传参: 使用TCP传参可以确保数据的可靠传输,适用于对数据传输的完整性有更高要求的场景。 首先,我们需要创建一个TCP服务器和TCP客户端。服务器负责监听特定的端口,并等待客户端的连接请求。客户端则负责主动发起连接,并向服务器发送数据。 服务器端的代码大致如下: ```python import socket def tcp_server(): server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind(('localhost', 8888)) server_socket.listen(1) while True: client_socket, client_address = server_socket.accept() data = client_socket.recv(1024) # 接收客户端发送的数据 print("Received data:", data.decode()) client_socket.close() tcp_server() ``` 客户端的代码大致如下: ```python import socket def tcp_client(): client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client_socket.connect(('localhost', 8888)) data = "Hello, Server!" client_socket.send(data.encode()) # 发送数据给服务器 client_socket.close() tcp_client() ``` 2. UDP传参: UDP传参是一种无连接、不可靠的传输方式,适用于对实时性要求较高的场景。 要实现UDP传参,我们只需创建一个UDP Socket,并指定目标的IP地址和端口号。 服务器端的代码大致如下: ```python import socket def udp_server(): server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) server_socket.bind(('localhost', 8888)) while True: data, address = server_socket.recvfrom(1024) # 接收客户端发送的数据 print("Received data:", data.decode()) udp_server() ``` 客户端的代码大致如下: ```python import socket def udp_client(): client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) data = "Hello, Server!" client_socket.sendto(data.encode(), ('localhost', 8888)) # 发送数据给服务器 client_socket.close() udp_client() ``` 以上是使用TCPUDP传递参数的简单示例,通过这两种方式,可以满足不同场景下对数据传输的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值