python基础—网络编程

2024-01-08 05:17:18

网络基本协议

TCP协议

UDP协议

二者对比:

连接性:

TCP是面向连接的协议,需要在传输数据之前先进行三次握手建立连接。而UDP是无连接的协议,可以直接发送数据,无需事先建立连接。

可靠性:

TCP提供了数据传输的确认和重传机制,能保证数据按照发送的顺序进行接收,并且对丢包有一定的检测和恢复能力。而UDP则没有这样的保证,可能会导致数据的丢失、重复或乱序。

速度:

由于TCP的可靠性和确认机制,其处理速度相对较慢。而UDP由于其简单性,处理速度较快,适用于实时应用如音频和视频流。

P的首部开销比UDP的首部开销大。TCP头部固定20字节,而UDP头部固定8字节。

python实现网络编程的基本模块-socket模块

使用python实现tcp协议

TCP协议

服务器端

import socket

sk = socket.socket()
sk.bind(("127.0.0.1",9001))
sk.listen()
while True:
    print("正在等待连接")
    coon,addr = sk.accept()
    msg = coon.recv(1024).decode("utf-8")
    print(msg)
    coon.send("我是服务器".encode("utf-8"))
    coon.close()

客户端

import socket
import time
sk = socket.socket()
sk.connect(("127.0.0.1",9001))
sk.send("我是客户端".encode("utf-8"))
msg = sk.recv(1024).decode("utf-8")
print(msg)
time.sleep(1)
print("通信结束")
sk.close()

UDP协议

服务器端

import socket

sk = socket.socket(type=socket.SOCK_DGRAM)

sk.bind(("127.0.0.1",9001))
msg,addr = sk.recvfrom(1024)
print(msg.decode("utf-8"))
sk.sendto("我是服务器".encode("utf-8"),addr)

客户端

import socket
import time
sk = socket.socket(type=socket.SOCK_DGRAM)
sk.sendto("我是客户端".encode("utf-8"),("127.0.0.1",9001))
msg = sk.recv(1024).decode("utf-8")
print(msg)
sk.close()

#:可以在此基础上进行修改,以实现各种功能

import socket
import time
import random
while True:
    sk = socket.socket(type=socket.SOCK_DGRAM)
    s = random.randint(1,10)
    sk.sendto("我是客户端{}".format(s).encode("utf-8"),("127.0.0.1",9001))
    msg = sk.recv(1024).decode("utf-8")
    time.sleep(2)
    print(msg)

对客户端进行循环操作,使其没两秒发送一次消息

文章来源:https://blog.csdn.net/qq_63781342/article/details/135391825
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。