2016-12-21 10 views
-1

次の例を考えてみましょう。Pythonソケットオブジェクト

from socket import * 

msg = input("Please enter your name ") 
msg = msg.encode() 
myHostIp = '' 
myHostPort = 54040 

socket_obj = socket(AF_INET, SOCK_STREAM) 
socket_obj.bind((myHostIp,myHostPort)) 
socket_obj.listen(5) 

while True: 
    connection,address = socket_obj.accept() 
    print("Client : ",address) 
    connection.send(msg) 
    print(socket.getsockname(socket_obj)) 
    print(socket.getsockname(connection)) 
    print(socket.getpeername(socket_obj)) 
    print(socket.getpeername(connection)) 
    while True: 
     data = connection.recv(1024) 
     print("This was received from ", data) 
    connection.close()  

この単純なプログラムではラインprint(socket.getsockname(socket_obj))の出力は(0.0.0.0) だったとprint(socket.getpeername(socket_obj))のは、私の質問があるsocket_obj is not connected.

た:connection,address = socket_obj.accept()が実行されると、connectionに転送socket_objからの制御ですか?

答えて

1

.listen()を呼び出すソケットは、サーバソケットです。 .accept()に電話して、すべての実際の通信を処理するクライアントソケットを生成することです。 1つのサーバーソケットは、その存続期間中に任意の数のクライアントソケットを生成できます。

関連する問題