我制作了一个控制台应用程序,允许我在个人聊天中与其他人交谈。我想允许两个用户在键入quit时结束连接。
请注意,即使用户关闭终端,端口仍在监听。
import socket
import threading
bind_ip = "0.0.0.0"
bind_port = 8887
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((bind_ip,bind_port))
server.listen(5)
print "[*] Listening on %s:%d" % (bind_ip, bind_port)
def handle_client(client_socket):
while True:
client_socket.send(raw_input('\n'))
request = client_socket.recv(1024)
print "[*] Received: %s" % request
if exit == "exit":
client_socket.close()
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()
答案 0 :(得分:4)
这里有多个问题。
'quit'
退出,因为您正在检查'exit'
而不是'quit'
。request
,这是他的实际要求;你正在检查exit
这是一个函数对象,它永远不会等于任何字符串。client_socket.close()
,但是你没有break
离开循环,所以它会直接回到循环的顶部。raw_input
“正是我所做的”,但您并没有这样做。这是raw_input
client_socket.send(raw_input('\n'))
中while True:
msg = raw_input('\n')
if msg == "quit":
break
client_socket.send(msg)
request = client_socket.recv(1024)
print "[*] Received: %s" % request
if request == "quit":
break
client_socket.close()
唯一的地方,您显然没有在那里查看任何内容。所以,要解决所有这些问题:
<div style="background: #f6f2ea url(images/file.jpg) no-repeat center center;
min-height: 50%; background-size:cover;">
<div id="overlay-black">
<div>
<h3 class="bg-color">TEXT</h3>
</div>
</div>
</div>
您的设计和代码还有其他非常大的问题,但修复这4个问题至少会让您进入下一个问题。