我正在使用pickle创建简单的服务器客户端架构。当我收到数据并打印出来时,首先编号为disaapear,为什么?我怎么能避免这个? 例如:({2,2,4},{3,4}) - > ({2,4},{3,4})
服务器代码: 进口泡菜 导入套接字
TCP_IP = '127.0.0.1'
TCP_PORT = 5005
BUFFER_SIZE = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)
conn, addr = s.accept()
print ("conn info: ", conn)
objrcv = pickle.loads(conn.recv(10024))
print("conn recv: ", objrcv)
print("conn from: ", addr)
print(objrcv)
客户端代码
import socket
import pickle
name = 'name'
TCP_IP = '127.0.0.1'
TCP_PORT = 5005
BUFFER_SIZE = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
data = pickle.dumps(name)
s.connect((TCP_IP, TCP_PORT))
# #s.send(data) #powitalne info, dane gracza
def wyslij_dane(my_array): #sending data
data = pickle.dumps(my_array)
if data[0] != 0: # pierwszy argument odpowiedzialny za poddanie sie
print('before send')
s.send(data)
print('after send') #just to control
#data_recv = s.recv(BUFFER_SIZE)
#print("received data:", data_recv)
def rozlacz():#disconnecting
s.close()
wyslij_dane(({2,2,4}, {3,4}))
wyslij_dane({2,2,433})
wyslij_dane(0)
rozlacz()
服务器输出:
conn info: ...
conn recv: ({2, 4}, {3, 4})
conn from: ('127.0.0.1', 51876)
({2, 4}, {3, 4})
另一个问题是:我可以做些什么来处理所有发送数据(所有调用wyslij_dane()函数?)
答案 0 :(得分:1)
" {}"意味着你正在使用一套。在一个集合中,每个项目只存在一次。相反,你可以使用这些列表 - > " []"或者tupel - > "()" 所以
wyslij_dane(({2,2,4}, {3,4}))
变为
wyslij_dane(([2,2,4], [3,4]))
等等。