2
Я пытаюсь найти сумму двух чисел. Это мои коды для сервера и клиента, результат я хочуКак извлечь interger из строки
КЛИЕНТ ПОЛУЧИЛ: Sum 46
, но вместо этого я получаю
КЛИЕНТ ПОЛУЧИЛ: Sum 12
КЛИЕНТ ПОЛУЧИЛ: Sum 34
Клиент:
import socket
def parse_file(fName):
list = []
with open(fName) as f:
for line in 1f:
list.append(line.strip())
return list
HOST = 'localhost' # The remote host
PORT = 50007 # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
input_data = parse_file('foo')
for i in input_data:
s.sendall(str(i))
sum = s.recv(1024)
print "CLIENT RECEIVED : Sum ", sum
s.close()
Подавать г:
import socket
def compute_sum(line):
result = sum(int(i) for i in line)
return result
HOST = 'localhost' # Symbolic name meaning all available interfaces
PORT = 50007 # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr
while 1:
data = conn.recv(1024)
if not data: break
print "SERVER RECIEVED : ", repr(data)
compute_sum(data)
conn.sendall(data)
conn.close()
Foo
23
12
получаю эту ошибку ... TypeError: неподдерживаемый тип операнда (ов) для + =: 'Int' и 'ул' – user7576454
@ user7576454 Wrap вызов 'RECV()' в вызове на 'int()'. Я отредактировал ответ, чтобы включить это. Извините, я не понимал, что возвращает 'recv()'. Причина, по которой вы не получали эту ошибку в исходном коде, заключается в том, что вы сразу ее печатали, не пытаясь сделать математику. – Dan
Бинго, его работа ... !!! но как я могу избежать нескольких выходов: КЛИЕНТ ПОЛУЧЕН: Сумма 12 ПОЛУЧЕННЫЙ КЛИЕНТ: Сумма 46 Мне нужен только второй вывод – user7576454