2012-09-17 3 views
15

파이썬에서 socket 모듈을 가진 간단한 서버와 간단한 클라이언트를 만들었습니다.파이썬에서 Socket.accept()의 반환 값은 무엇입니까

서버 :

# 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() 

와 클라이언트 :

#client.py 
import socket 

s = socket.socket() 

host = socket.socket() 
port = 1234 

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

내가 서버를 시작한 후 4 클라이언트를 시작하고 다음과 같이 서버의 콘솔 출력을 가지고 :

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) 

은 무엇인가 튜플의 두 번째 부분? python documentation에서

답변

13

:

쌍 (호스트 포트) 호스트가 'daring.cwi.nl'와 같은 인터넷 도메인 표기법에서 호스트 이름 중 하나를 나타내는 문자열입니다 AF_INET 주소 패밀리에 사용됩니다 또는 '100.50.200.5'와 같은 IPv4 주소이고, port는 정수입니다.

두 번째 값은 클라이언트 측에서 연결에 사용하는 포트 번호입니다. TCP/IP 연결이 설정되면 클라이언트는 나가는 포트 번호를 선택하여 서버와 통신합니다. 서버 리턴 패킷은 해당 포트 번호로 주소 지정됩니다.

+1

accept()가 반환하는 (호스트, 포트) 쌍에서 포트 번호 정수 값을 얻는 방법은 무엇입니까? –

+1

그냥 튜플 일뿐입니다. 구독 사용 :'returned_tuple [1]' –

5

인용구 :

socket.accept()

가 연결을 수락합니다. 소켓은 주소에 바인드되어 연결을 청취해야합니다. 반환 값은 (conn, address) 쌍입니다. 여기서 conn은 연결에서 데이터를 보내고받을 수있는 새 소켓 객체이고 address는 연결의 다른 끝에있는 소켓에 바인딩 된 주소입니다.

from words "Socket addresses are represented as follows"과 동일한 문서에서 찾을 수 있습니다. 에서

+0

왜이 downvoted ?? 이것은 정확하게 물었던 것이고, 운 좋게 내가 찾고있는 것입니다. –

관련 문제