Python 2.7 pythontcpserver不循环

Python 2.7 pythontcpserver不循环,python-2.7,tcp,Python 2.7,Tcp,大家好,谢谢你们复习我的问题 我是python新手,我在一本书中学习了一个教程,在这本书中我擅长制作tcpserver 现在它是为Python2.x编写的,我知道我应该为3.x编写它,但我想从书中对它的解释开始 这是他的普通tcp服务器代码: import socket import threading bind_ip = "0.0.0.0" bind_port = 9999 server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

大家好,谢谢你们复习我的问题

我是python新手,我在一本书中学习了一个教程,在这本书中我擅长制作
tcpserver

现在它是为Python2.x编写的,我知道我应该为3.x编写它,但我想从书中对它的解释开始

这是他的普通tcp服务器代码:

import socket
import threading

bind_ip = "0.0.0.0"
bind_port = 9999

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

server.bind((bind_ip,bind_port))

server.listen(5)

print "[*] Listning on %s:%d" % (bind_ip,bind_port)

#this is our client-handling thread
def handle_client(client_socket):

    #print out what the client sends
    request = client_socket.recv(1024)

    print "[*] Recived: %s" % request

    #send back a packet
    client_socket.send("ACK!")

    client_socket.close()

    while True:

        client,addr = server.accept()

        print "[*] Accepted connection from: %s:%d" % (addr[0],addr[1])

    #spin up our client thread to handle incomming data

    client_handler = threading.Thread(target=handle_client,args=(client,))
    client_handler.start()
现在,当我从Python2.7.x运行该代码时,它失败了,这给了我一个无效的语法% 因此,我更改了一些行,以支持.format,因为我在谷歌上找到的内容不再支持%I

print "[*] Listning on {0}:{1}".format(bind_ip,bind_port)
print "[*] Recived: {0}".format(request)
print "[*] Accepted connection from: {0}:{1}".format(addr[0],addr[1])
当我现在运行它时,它会吐出:
[*]listing on 0.0.0:9999
很好,对吧?否,因为由于某种原因,我无法确定while循环是否不执行,因此它在一秒钟后脱离.py,因此我无法使用我的
tcp客户端脚本测试
tcp服务器脚本


有人能告诉我出了什么问题吗?

您应该启动函数的线程输出端。如果注意到该标识,则
while
循环是
handle_client
的一部分,因此在打印“Listning on…”时,您会看到脚本退出


显示带有回溯的完整错误消息。另外,
%
格式设置仍然受支持,尽管
格式设置是一种新的方式。很抱歉浪费您的时间问题是我的行距我通常在php中编程,不区分大小写,因为它被括在括号中
def handle_client(client_socket):
   #Function defnition
while True:

        client,addr = server.accept()

        print "[*] Accepted connection from: %s:%d" % (addr[0],addr[1])
        client_handler = threading.Thread(target=handle_client,args=(client,))
        client_handler.start()