python网络编程

TCP和UDP协议

  1. TCP基于连接发送数据,UDP无需连接就可以发送数据
  2. TCP安全,会重传数据包,UDP不安全,发送完就不再理会
  3. TCP发送速度慢,UDP发送速度快
  4. TCP一般用于发送聊天文字,UDP一般用于发送音视频

服务端TCP和UDP

# tcp服务端
import socket
# socket.AF_INET表示地址格式是ipv4,socket.SOCK_STREAM表示通讯协议是TCP
tcpServerSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 设置局域网内服务地址为10.20.154.92,端口号为6666
tcpServerSocket.bind(("10.20.154.92",6666))
tcpServerSocket.listen(5)
client,add=tcpServerSocket.accept()
while True:
    # 设置消息接受最大长度为1024
    msg = client.recv(1024)
    print("客户端发送消息为:",msg.decode())
    # client.send可以将消息传递回客户端
    client.send("服务器收到了你发来的消息".encode())
tcpServerSocket.close()

# udp服务端

import socket
ssk = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
ssk.bind(("10.20.154.92",6666))
while True:
    # 接受:返回结果为数据和地址
    msg,address = ssk.recvfrom(1024)
    print(("客户端:%s说:%s")%(address,msg.decode()))
    # 参数是,(发送给客户端的数据,客户端地址)
    msg1 = input("服务器说:")
# 此处是指给发送消息过来的客户端回传消息,所以加上参数address
    ssk.sendto(msg1.encode(),address)
ssk.close()
    

客户端UDP和TCP

# tcp客户端
import socket
clientSockte = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 客户端主动连接服务器
clientSockte.connect(("10.20.154.92",6666))
print("客户端连接服务器..........")
while True:
    msg = input("请输入你要说的话")
    # 发送数据变成二进制传递过去
    clientSockte.send(msg.encode())
    # 接收服务器返回的数据,最大为1024
    rec = clientSockte.recv(1024)
    print("服务器返回:",rec.decode())
clientSockte.close()


# udp客户端
import socket
cls = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
while True:
    # 发送
    msg = input("客户端说:")
    cls.sendto(msg.encode(),("10.20.154.92",6666))
    msg2,address = cls.recvfrom(1024)
    print("服务器说:",msg2.decode())
    # 接受

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值