Python套接字对象

Python套接字对象,python,sockets,Python,Sockets,考虑下面的例子 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: connectio

考虑下面的例子

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\u obj))
was
socket\u obj未连接。


我的问题是:一旦执行了
connection,address=socket\u obj.accept()
,来自
socket\u obj
的控制是否转移到
connection

您调用的套接字
.listen()
是一个服务器套接字;您所能做的就是调用
.accept()
生成一个客户端套接字,它处理所有实际通信。一个服务器套接字在其生存期内可以生成任意数量的客户端套接字