Клиент-серверные программы простаивают на Python - PullRequest
0 голосов
/ 21 октября 2019

Мы программируем клиент-серверное приложение для университетского проекта. Изначально нам нужно отправить клиенту 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'))

Мы были бы очень благодарны за любую помощь или понимание, что вы можетедать нам. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...