簡體   English   中英

我該如何終止

[英]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.exepythonw.exe進程,然后在任務管理器中按End Process 如果您使用的是POSIX系統,則可以找到帶有ps的進程,並以kill -INT id結尾,其中id是您從ps獲得的進程ID。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM