[英]How can I terminate
我正在學習套接字編程和python。 對於學校作業,我創建了一個運行的服務器,但是我不知道如何終止它。 該說明說,我的服務器反復運行,直到被主管終止為止(不要打開套接字)。 有人可以給我一個例子或為我指出正確的方向嗎? 非常感謝!
這是我的代碼的一部分:
import socket
import sys
import os
def main():
#HOST = ''
#PORT = 8888
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print 'Socket created'
try:
server_socket.bind((HOST, PORT)) #bind to a address(and port)
except socket.error, msg:
print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
sys.exit()
print 'Socket bind complete'
#put the socket in listening mode
server_socket.listen(10) #maximum 10 connections
print 'TCP Server Waiting for client on port 30021'
#wait to accept a connection - blocking call
client, addr = server_socket.accept()
#display client information
print 'Connected with ' + addr[0] + ':' + str(addr[1])
try:
#keep talking with the client
while 1:
#Receiving from client
data = client.recv(1024)
if not data:
break
#DO SOMETHING HERE
except KeyboardInterrupt:
print "Exiting gracefully."
finally:
server_socket.close()
if __name__ == "__main__":
main()
如果您以交互方式運行它(也就是說,您是使用python myprogram.py
或./myprogram.py
啟動它的,並且具有一個可以查看其輸出的控制台),則應該可以通過以下方式向其發送中斷:按CTRL C。 然后,您應該看到“正常退出”消息,並且該消息應終止。
如果以其他方式運行它,如何終止它取決於您使用的平台。 如果您使用的是Windows,則應該能夠找到python.exe
或pythonw.exe
進程,然后在任務管理器中按End Process 。 如果您使用的是POSIX系統,則可以找到帶有ps
的進程,並以kill -INT id
結尾,其中id
是您從ps
獲得的進程ID。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.