Форум сайта python.su
Добрый день! Извиняюсь, если такой вопрос уже был (не нашел быстрым поиском), но у меня проблема. Пишу легкий чатик с использованием сокета. При работе серверной части проги выдает такую вот ошибку
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()
Отредактировано (Апрель 17, 2011 15:13:37)
Офлайн
Вспомните, что возвращает .accept?
Офлайн
В хелпе я посмотрел, что возвращает .accept().
В данном случае он возращает
<socket.socket object, fd=1768, family=2, type=1, proto=0>, ('127.0.0.1', 1269)
Офлайн
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».
Офлайн
Да да понял уже….Спасибо!))
Офлайн