accept()的返回值针对不同的客户端不应该不一样吗?为什么这里这里不同用户打印的connect值相同,而且都为4啊?
struct member{
int number; //记录用户数量
char conn[5]; //记录每个用户对应的连接号
char user[5][20]; //和number对应,记录第i个用户的姓名
};
//用shm函数开辟了一个结构体member大小的共享内存
//p是指向这个共享结构体的指针
服务端部分代码
运行结果如下:
accept()的返回值针对不同的客户端不应该不一样吗?为什么这里这里不同用户打印的connect值相同,而且都为4啊?
struct member{
int number; //记录用户数量
char conn[5]; //记录每个用户对应的连接号
char user[5][20]; //和number对应,记录第i个用户的姓名
};
//用shm函数开辟了一个结构体member大小的共享内存
//p是指向这个共享结构体的指针
服务端部分代码
conn, addr = server_receive.accept()
while True:
# 接受数据
data = conn.recv(1024)
msg = int(data)
if not data:
break
else:
# 输出数据
print(str(data, encoding="utf-8"))
while int(msg) != 0:
if msg == 1:
ewmsc()
break
elif msg == 2:
xxlrscewm()
break
elif msg == 3:
dysxtsmewm()
break
elif msg == 4:
readexcel()
break
elif msg == 5:
Search()
break
elif msg == 6:
Modify_excel()
break
else:
print("输入错误!")
break
Menu()
print("已保存")
huifu = '已完成相应操作,请继续'
if len(data) == 0:
continue
conn.sendall(bytes(huifu, encoding="utf-8"))