Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 17, 2011 15:11:21

Gremlyaka
От:
Зарегистрирован: 2011-04-17
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование recv() в Python 3.0

Добрый день! Извиняюсь, если такой вопрос уже был (не нашел быстрым поиском), но у меня проблема. Пишу легкий чатик с использованием сокета. При работе серверной части проги выдает такую вот ошибку

Traceback (most recent call last):
File "C:\Python31\Styding\123server.py", line 13, in <module>
server_socket.send(data)
socket.error: [Errno 10057] Запрос на отправку или получение данных (when sending on a datagram socket using a sendto call) no address was supplied
код простой:
import socket
port = 6000
host = "127.0.0.1"
server_socket=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((host, port))
server_socket.listen(1)
print("Listening the ", port, " port")
address = server_socket.accept()
while 1:
print("I got a connection from", address)
data = bytes(input("SEND: "), 'utf-8')
server_socket.send(data)
print("SENT ")
data = server_socket.recv(512)
if not data:
print("NO DATA")
else:
print("RECIEVED:", data)
#data = data+'000'
#server_socket.send(bytes(data, 'utf-8'))
server_socket.close()
в чем проблема при использовнии .send и .recv??



Отредактировано (Апрель 17, 2011 15:13:37)

Офлайн

#2 Апрель 17, 2011 18:04:21

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Использование recv() в Python 3.0

Вспомните, что возвращает .accept?



Офлайн

#3 Апрель 18, 2011 07:56:15

Gremlyaka
От:
Зарегистрирован: 2011-04-17
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование recv() в Python 3.0

В хелпе я посмотрел, что возвращает .accept().
В данном случае он возращает

<socket.socket object, fd=1768, family=2, type=1, proto=0>, ('127.0.0.1', 1269)
Чем это поможет?



Офлайн

#4 Апрель 18, 2011 08:06:53

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Использование recv() в Python 3.0

socket.accept()
Accept a connection. The socket must be bound to an address and listening for connections. The return value is a pair (conn, address) where conn is a new socket object usable to send and receive data on the connection, and address is the address bound to the socket on the other end of the connection.

Перечитывать до просветления: «conn is a new socket object usable to send and receive data on the connection».



Офлайн

#5 Апрель 18, 2011 14:36:11

Gremlyaka
От:
Зарегистрирован: 2011-04-17
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование recv() в Python 3.0

Да да понял уже….Спасибо!))



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version