2012-09-17 17 views
15

Zrobiłem prosty serwer i prosty klient z modułem socket w pythonie.Jaka jest wartość zwracana przez Socket.accept() w pythonie

server:

# server.py 
import socket 

s = socket.socket() 
host = socket.gethostname() 
port = 1234 
s.bind((host, port)) 

s.listen(5) 

while True: 
    c, addr = s.accept() 
    print 'Got connection from', addr 
    c.send('Thank you for your connecting') 
    c.close() 

i klient:

#client.py 
import socket 

s = socket.socket() 

host = socket.socket() 
port = 1234 

s.connect((host, port)) 
print s.recv(1024) 

zacząłem serwera, a następnie rozpoczął 4 klientów i dostał wyjście w konsoli serwera jak poniżej:

Got connection from ('192.168.0.99', 49170) 
Got connection from ('192.168.0.99', 49171) 
Got connection from ('192.168.0.99', 49172) 
Got connection from ('192.168.0.99', 49173) 

co jest druga część w krotce?

Odpowiedz

13

Z :

Para (host, port) jest używany do rodziny adresów AF_INET, gdzie gospodarzem jest ciągiem albo nazwę hosta w notacji domen internetowych jak „daring.cwi.nl” lub adres IPv4, taki jak "100.50.200.5", a port jest liczbą całkowitą.

Druga wartość to numer portu używany przez klienta do połączenia. Po nawiązaniu połączenia TCP/IP klient wybiera numer portu wychodzącego, aby komunikować się z serwerem; pakiety zwracające serwer należy zaadresować do tego numeru portu.

+1

Jak mogę uzyskać tylko liczbę całkowitą numeru portu z pary (host, port), która akceptuje() zwraca? –

+1

To tylko krotka; używaj subskrypcji: 'zwrócony_tuple [1]' –

5

Cytat python documentation:

socket.accept()

Akceptuj połączenia. Gniazdo musi być powiązane z adresem i nasłuchiwać połączeń. Wartością zwracaną jest para (conn, address), gdzie conn jest nowym obiektem gniazda używanym do wysyłania i odbierania danych w połączeniu, a adres jest adresem przypisanym do gniazda na drugim końcu połączenia.

Co można znaleźć w tym samym dokumencie addressfrom words "Socket addresses are represented as follows".

+0

Dlaczego jest to odrzucane? Właśnie o to pytano i na szczęście to, czego szukałem. –

Powiązane problemy