Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 3, 2011 17:31:47

KellyDink
От:
Зарегистрирован: 2011-12-03
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

error: [Errno 10054]

у меня есть две программки - одна сервер, а вторая - клиент, я хочу чтобы от клиента сообщение передавалось сообщение серверу!
у меня первое сообщение передается( а вот на втором вылетает( подскажите пожалуйста, что я не так делаю?

собственно код клиента:
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:



Отредактировано (Дек. 3, 2011 17:44:03)

Офлайн

#2 Дек. 3, 2011 18:30:44

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

error: [Errno 10054]

Надо попробовать вынести из цикла
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)



Офлайн

#3 Дек. 3, 2011 18:56:59

KellyDink
От:
Зарегистрирован: 2011-12-03
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

error: [Errno 10054]

а это дело ъ на стороне клиента? или может на сервере что-то криво написано?



Отредактировано (Дек. 3, 2011 19:05:56)

Офлайн

#4 Дек. 3, 2011 18:59:44

KellyDink
От:
Зарегистрирован: 2011-12-03
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

error: [Errno 10054]

при переносе тоже ошибка(причем теперь не отправляется ни одно сообщение

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

сообщение ввести предлагает( но увы оно даже не отсылается( а в моем варианте одно проходило идеально



Отредактировано (Дек. 3, 2011 19:03:24)

Офлайн

#5 Дек. 3, 2011 23:06:16

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9914
Репутация: +  855  -
Профиль   Отправить e-mail  

error: [Errno 10054]

надо строки, создающие соединение, вынести из цикла
цикл сделать конечным
соединение в цикле не закрывать



Отредактировано (Дек. 3, 2011 23:06:44)

Офлайн

#6 Дек. 3, 2011 23:38:50

KellyDink
От:
Зарегистрирован: 2011-12-03
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

error: [Errno 10054]

здорого =) работает! только у меня не получилось его сделать конечным, а вот с while 1 все заработало) спасибо! я все строки вносила и выносила из цикла - а тупо про закрытие сессии не подумала!



Отредактировано (Дек. 3, 2011 23:55:25)

Офлайн

#7 Дек. 5, 2011 01:18:48

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9914
Репутация: +  855  -
Профиль   Отправить e-mail  

error: [Errno 10054]

while True - плохой стиль (бесконечная программа)
надо определить, когда она закончится, и написать соответствующее условие
например, посылает десять сообщений



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version