Python,建立一个独占的TCP连接

2024-09-28 03:23:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我在谷歌和这个网站上做了大量的研究,以找到这个简单话题的答案。我希望在python中的TCP服务器和其他客户机之间建立独占连接。第一个客户端连接到服务器,如果其他客户端试图在服务器上连接,则必须拒绝它们。在

我只能管理服务器代码,协议和客户端不可编辑。在

# 1) Socket creation
mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 2) binding
try:
    mySocket.bind((HOST, PORT))
except socket.error:
    print "socket connection failed"
    sys.exit()


while 1:
    # 3) Waiting for a client
    print "Ready, waiting for connection"
    try :
        mySocket.listen(0)
    except socket.error:
        print "connection lost"
        sys.exit()

    # 4) Accept connection
    connexion, adresse = mySocket.accept()
    print "Client connecté, adresse IP %s, port %s" % (adresse[0], adresse[1])

    while 1:
        # infinite loop while the client is connected. Therorically for ever
        try :
           msgClient = connexion.recv(1024)
        except socket.error:
           # connection lost
           break;

        # protection against empty packet
        if len(msgClient) == 0 :
           break;
        #[Here is my code to process incoming packets]
        bla bla bla 
    print "Connection lost"

当我阅读套接字手册时,调用函数listen(0)should close connection for other client。在生命中,第二个客户端没有被拒绝的连接。 如果需要进一步的信息,我可以提供。在


Tags: 服务器client客户端forerrorsocketconnectionprint

热门问题