服务端代码
#!/usr/bin/python3
import socket, json
BUFF_LEN = 1200
ADDR = (“”, 18000)
创建UDP Socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
绑定地址
server_socket.bind(ADDR)
while True:
try:
recvbytes, client_addr = server_socket.recvfrom(BUFF_LEN)
except socket.timeout:
continue
print(f’来自{client_addr}的请求’)
# 接收到的消息是字节,所以要解码,再序列化
print(recvbytes)
message = "已经收到"
sendbytes = json.dumps(message).encode('utf8')
print(sendbytes)
server_socket.sendto(sendbytes, client_addr)
截图说明下格式,复制出来的格式有偏差
客户端代码1
00个端口,采用进程方式,调用100个CPU 。服务器CPU数量是128
#! /usr/bin/python3
--coding:utf8--
import socket
import json
import time
from multiprocessing import Process
BUFF_LEN = 1500
SERVER_ADDR = (“10.10.24.11”, 18000)
def createClient():
# 创建UDP Socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 设置socket超时时间,单位:秒
client_socket.settimeout(2)
raw = b’\x00\x00\x33\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x0
0\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x
02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d
x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00
\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x0
5\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x
0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11
x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63
\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0
a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x
11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x01\x11\x00\x00\x0a\x0a\x0d\x02\x9c\x63\x05\x02\x02\x11\x00\x00\x0a\x0a\x0d\x02\x9c
x63\x05\x02\x03\x11\x00\x00’
sendbytes = raw
while True:
time.sleep(1)
client_socket.sendto(sendbytes, SERVER_ADDR)
try:
recvbytes, server = client_socket.recvfrom(BUFF_LEN)
message = json.loads(recvbytes.decode(‘utf-8’))
print(message)
except socket.timeout:
print(“接收消息超时”)
if name == ‘main’:
plist = []
for i in range(100):
p = Process(target=createClient)
p.start()
plist.append§
for p in plist:
p.join()
截图说明下格式,复制出来的格式有偏差
运行效果