功能两个描述
使用udp完成
1:客户端不断录入学生信息将其发送到服务端
2:在服务端,将学生信息写入一个文件中,每个学生信息占一行
服务端
"""
使用udp完成,客户端不断录入学生信息
将其发送到服务端,在服务端,将学生信息写入
一个文件中,每个学生信息占一行
"""
import struct
from socket import *
FMT = 'i20sif'
# 创建套接字
sockfd = socket(AF_INET, SOCK_DGRAM)
# 绑定地址
server_addr = ('0.0.0.0', 8888)
sockfd.bind(server_addr)
def add_to_text(s):
f = open('1.txt', 'a')
f.write(s + '\n')
"""
使用udp完成,客户端不断录入学生信息
将其发送到服务端,在服务端,将学生信息写入
一个文件中,每个学生信息占一行
"""
import struct
from socket import *
FMT = 'i20sif'
# 创建套接字
sockfd = socket(AF_INET, SOCK_DGRAM)
# 绑定地址
server_addr = ('0.0.0.0', 8888)
sockfd.bind(server_addr)
def add_to_text(s):
f = open('1.txt', 'a')
f.write(s + '\n')
f.flush()
# 循环收发消息
while True:
data, addr = sockfd.recvfrom(1024)
line = list(struct.unpack(FMT, data))
line[1] = line[1].decode().strip()
add_to_text('%d %s %d %0.1f' % tuple(line))
sockfd.close()
# 循环收发消息
while True:
data, addr = sockfd.recvfrom(1024)
line = list(struct.unpack(FMT, data))
line[1] = line[1].decode().strip()
add_to_text('%d %s %d %0.1f' % tuple(line))
sockfd.close()
客户端
from socket import *
import struct
FMT = 'i20sif'
# 服务器地址
# ADDR = ('119.91.116.248', 8888)
ADDR = ('127.0.0.1', 8888)
# 创建套接字
sockfd = socket(AF_INET, SOCK_DGRAM)
print(' '.join(['1', '2', '3']))
# 循环收发消息
while True:
id = int(input('请输入ID:'))
name = input('请输入姓名:')
age = int(input('请输入年龄:'))
score = float(input('请输入分数:'))
data = struct.pack(FMT, id, name.encode(), age, score)
if not data:
break
sockfd.sendto(data, ADDR)
sockfd.close()