Мы программируем клиент-серверное приложение для университетского проекта. Изначально нам нужно отправить клиенту 6 матриц. Когда сокет запускается и работает, мы можем отправить одну матрицу с Сервера на Клиент, но ответный ответ от Клиента делает обе программы бездействующими, даже если соединение установлено. Больше никаких строк кода не выполняется на Клиенте или Сервере. Вот мы хотим, чтобы мы работали:
Код сервера:
import socket
import threading
import sys
import time
HOST= '192.168.0.9'#'172.20.10.7' #The servers hostname or IP adress
PORT= 55349 #The Port used by the server
print('Created')
with socket.socket(socket.AF_INET,socket.SOCK_STREAM) as s:
s.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
s.bind((HOST, PORT))
s.listen(1)
print ('listening')
conn, addr = s.accept()
with conn:
# Enviar listapasillos
divdata=0
sobrante=0
msg=str(cantpasillos)
conn.sendall(msg.encode('utf-8'))
i=0
j=0
k=0
divdata=cantpasillos//4
sobrante=cantpasillos-(3*divdata)
for i in range (0,3):
for j in range (0,divdata-1):
indexdata=(divdata*(i)+j)
response = str(listapasillos[indexdata])
conn.send(response.encode('utf-8'))
for k in range (((divdata*3)-1),(cantpasillos)):
indexdata=k
response = str(listapasillos[indexdata])
conn.send(response.encode('utf-8'))
print("listapasillos enviada")
msg=conn.recv(64).decode('utf-8')
print (msg)
Код клиента:
import socket
import threading
import sys
HOST= '192.168.0.9'#'172.20.10.7' #The servers hostname or IP adress
PORT= 55349 #The Port used by the server
with socket.socket(socket.AF_INET,socket.SOCK_STREAM) as s:
s.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
s.connect((HOST, PORT))
cantpasillos = int(s.recv(8))
print(cantpasillos)
print("")
for i in range (0,int(cantpasillos)):
data= s.recv(1024).decode('utf-8')
listapasillos=listapasillos+data
print(listapasillos)
print("")
msg = "pasillos recibidos"
s.sendall(msg.encode('utf-8'))
Мы были бы очень благодарны за любую помощь или понимание, что вы можетедать нам. Спасибо