Найти - Пользователи
Полная версия: error: [Errno 10054]
Начало » Центр помощи » error: [Errno 10054]
1
KellyDink
у меня есть две программки - одна сервер, а вторая - клиент, я хочу чтобы от клиента сообщение передавалось сообщение серверу!
у меня первое сообщение передается( а вот на втором вылетает( подскажите пожалуйста, что я не так делаю?

собственно код клиента:
import socket

HOST = ‘127.0.0.1’
PORT = 50033

while True:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))

message = getMessage()
key = getKey()

data = getTranslatedMessage(message, key)

s.send(data)
print 'Send: ‘, data
data = s.recv(8192)
s.close()
print ’Received: ', data


первое сообщение идеально отправляется, а вот на втором выводит ошибку:
Traceback (most recent call last):
File “C:\Users\Katusha\Desktop\Kate\Kate\task3\easy_client.py”, line 50, in <module>
s.send(data)
error:
doza_and
Надо попробовать вынести из цикла
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
KellyDink
а это дело ъ на стороне клиента? или может на сервере что-то криво написано?
KellyDink
при переносе тоже ошибка(причем теперь не отправляется ни одно сообщение

Traceback (most recent call last):
File “C:\Users\Katusha\Desktop\Kate\Kate\task3\easy_client.py”, line 44, in <module>
s.connect((HOST, PORT))
File “C:\Python27\lib\socket.py”, line 224, in meth
return getattr(self._sock,name)(*args)
File “C:\Python27\lib\socket.py”, line 170, in _dummy
raise error(EBADF, ‘Bad file descriptor’)
error: Bad file descriptor

а если перетащить за цикл с s.connect
то пишет -
Traceback (most recent call last):
File “C:\Users\Katusha\Desktop\Kate\Kate\task3\easy_client.py”, line 44, in <module>
s.connect((HOST, PORT))
File “C:\Python27\lib\socket.py”, line 224, in meth
return getattr(self._sock,name)(*args)
File “C:\Python27\lib\socket.py”, line 170, in _dummy
raise error(EBADF, ‘Bad file descriptor’)
error: Bad file descriptor

сообщение ввести предлагает( но увы оно даже не отсылается( а в моем варианте одно проходило идеально
py.user.next
надо строки, создающие соединение, вынести из цикла
цикл сделать конечным
соединение в цикле не закрывать
KellyDink
здорого =) работает! только у меня не получилось его сделать конечным, а вот с while 1 все заработало) спасибо! я все строки вносила и выносила из цикла - а тупо про закрытие сессии не подумала!
py.user.next
while True - плохой стиль (бесконечная программа)
надо определить, когда она закончится, и написать соответствующее условие
например, посылает десять сообщений
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB