一(07)、创建Socket

  • 代码实例

python udp 多客户端连接 python udp服务器_python udp 多客户端连接

  • 运行结果

python udp 多客户端连接 python udp服务器_python_02

二(08)、Socket发送数据案例

(一)实操代码

实操代码

python udp 多客户端连接 python udp服务器_udp_03

(二)运行结果

python udp 多客户端连接 python udp服务器_UDP_04

三(09)、UDP服务器端

(一)UDP特点

  • UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。
  • 腾讯QQ使用最多的是UDP

python udp 多客户端连接 python udp服务器_udp_05

  • 客户端的端口不需要记忆,一般来说要记忆的是服务器的端口

服务器端的结构

python udp 多客户端连接 python udp服务器_网络_06

其中只有具有默认网关的是本台电脑所在的网络

在UDP编码的过程中要输入这个网络的IPv4地址

(二)服务器端与客户端通讯实操

  • 服务器端

python udp 多客户端连接 python udp服务器_python_07

  • 客户端

python udp 多客户端连接 python udp服务器_udp_08

运行过程:

1、先打开UDP服务器端,程序保持运行

2、打开UDP客户端,在客户端中输入数据

python udp 多客户端连接 python udp服务器_udp_09

3、UDP服务器端接收到数据。decode可以返回接收到的源数据;打印返回data信息并终止进程

  • 注:50180数服务器端动态分配的端口

python udp 多客户端连接 python udp服务器_python_10

(三)核心代码

1、UDP服务器端

import socket
from socket import *

#1.创建一个服务器端的Socket
socket_server = socket(AF_INET,SOCK_DGRAM)

#2.定义服务的IP地址和端口号
host_port = ('192.168.43.234',8090)

#3.服务器端的Socket来绑定地址和端口,只有绑定了地址和端口,才能称之为服务器的Socket
socket_server.bind(host_port)

#4.接受客户端发过来的数据,每次接受1KB的数据
data = socket_server.recvfrom(1024)

print(data[0].decode('utf-8'))

print(data)

#5.关闭套接字来释放资源
socket_server.close()

2、UDP客户端

from socket import *

#创建一个UDP协议的套接字,然后发送一条数据到网络上的另外一个进程

#1.创建套接字
client_socket = socket(AF_INET,SOCK_DGRAM)

#2.定义一个接受消息的目标,8080是一个目标服务器的端口,127.0.0.1是目标服务器地址
# server_host_port=('127.0.0.1',8080)
server_host_port=('192.168.43.234',8090)

#3.准备即将发送的数据,encode表示按照编码格式把数据变成字节数组bytes
#数据一定是字节数据才能发送
datas = input("请输入:").encode('utf-8')

#4.发送数据,标识一个进程是通过IP+端口+协议
client_socket.sendto(datas,server_host_port)

print('发送完成')

#5.关闭套接字,其实就是释放了系统资源
client_socket.close()