Произошла ошибка сокета Python - PullRequest
4 голосов
/ 20 августа 2009

Я написал этот код.

import socket

host = 'localhost'
port = 3794
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.bind((host, port))
while 1:
        print 'Type message you want to send...'
        msg = raw_input()
        if msg == '':
                s.close()
                break
    s.sendall(msg)

и затем выполните этот код.

Traceback (most recent call last):
  File "socket.py", line 11, in ?
    s.bind((host, port))
  File "<string>", line 1, in bind
socket.error: (99, 'Cannot assign requested address')

Что не так?

Знаете ли вы решения?

Ответы [ 3 ]

9 голосов
/ 20 августа 2009

Это означает, что у вас уже есть сокет, связанный с портом 3794.

Это может быть другое приложение или это означает, что порт еще не был освобожден после предыдущего запуска вашего собственного сценария (это происходит, если сценарий неправильно завершен).

Просто попробуйте использовать другой номер порта - я верю, что все будет работать нормально.

4 голосов
/ 03 июня 2011

У меня была такая же проблема, и она была вызвана попыткой прослушивания не на том хосте. Когда я изменил его на IP-адрес, который был фактически связан с машиной, на которой выполнялся код (localhost), проблема исчезла.

0 голосов
/ 26 марта 2013

Эта ошибка возникает главным образом из-за того, что порт уже используется другим приложением / службой. Выберите номер порта выше диапазона зарегистрированных портов, т.е. 49151

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...