Forum
>>
Programmazione Python
>>
Web e Reti
>>
errore sconosciuto
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da supremo97 |
2017-02-06 04:04:28 - errore sconosciuto
|
salve a tutti ho windows8 e python v2.7 questa e la prima volta che programmo con i sockets e sono un po confuso su alcune cose vorrei che mi chiariste i dubbi che ho commentato.
host = "127.0.0.1" port = 5000 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) print "Socket Created" #non ho capito perche ci vogliono due parentesi sock.bind((host, port)) print "socket bind complete" sock.listen(1) print "socket now listening" while 1: #qui non ho capito perche ci sono due variable separate per virgola #wait to accept a connection - blocking call conn, addr = sock.accept() print 'Connected with ' + addr0 + ':' + str(addr1) #non ho capito nemmeno perche racchiude in un array le variabli sock.close() Traceback (most recent call last): File "C:\Documents and Settings\antony\Desktop\testServerTcp.py", line 8, in <module> sock.bind((host, port)) File "C:\Python27\lib\socket.py", line 228, in meth return getattr(self._sock,name)(*args) error: [Errno 10048] Di norma è consentito un solo utilizzo di ogni indirizzo di socket (protocollo/indirizzo di rete/porta) |
|
Scritto da ㎝ |
2017-02-06 10:24:55 - Re: errore sconosciuto
|
Ciao supremo97
#non ho capito perche ci vogliono due parentesi sock.bind((host, port)) Perché bind richiede un singolo argomento address, che nel caso di socket internet, è rappresentato dalla coppia (host, port). #qui non ho capito perche ci sono due variable separate per virgola #wait to accept a connection - blocking call conn, addr = sock.accept() Perché accept restituisce una coppia (conn, address) in cui il primo elemento rappresenta il socket connesso, mentre il secondo è l'indirizzo del destinatario (che nel caso di internet, è la solita coppia (host, port)). #non ho capito nemmeno perche racchiude in un array le variabli print 'Connected with ' + addr0 + ':' + str(addr1)Non racchiude in un array le variabili. Sta "spacchettando" la noiosa coppia nelle due componenti host (addr[ 0 ]) e port (addr[ 1 ]).
L'errore mi sembra piuttosto parlante (addirittura in italiano! :-)): la porta 5000 è già in uso sul tuo sistema (possibilmente per un'altra istanza del tuo programma in esecuzione). Happy hacking, ㎝ THE 🍺-WARE LICENSE (Revision ㊷):
<㎝🐌🐍.🇮🇹> wrote this post. As long as you retain this notice you can do whatever you want with this stuff. If we meet some day, and you think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝ |
Pagina: 1
Esegui il login per scrivere una risposta.