freddiefujiwara
freddiefujiwara

Reputation: 59049

Python socket error occured

I wrote this code.

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)

and next execute this code.

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')

What's wrong?

Do you know solutions?

Upvotes: 4

Views: 21484

Answers (3)

devsaw
devsaw

Reputation: 1047

This error comes up mostly due to the the port being already used by another application/service . Choose a port number above the range of registered ports , i.e 49151

Upvotes: 0

Zach Dwiel
Zach Dwiel

Reputation: 545

I had this same problem and it was caused by trying to listen on the wrong host. When I changed it to an IP that was actually associated with the machine the code was running on (localhost), the problem went away.

Upvotes: 4

Vanya
Vanya

Reputation: 3309

This means that you already have a socket bound to 3794 port.

It may be another application or it means that port didn't got released yet after the previous run of your own script (it happens, if script terminated improperly).

Simply try to use another port number - I believe everything will work fine.

Upvotes: 9

Related Questions