所以我有一個使用套接字的程式,它只接受連接,server.py 檔案偵聽 client.py 檔案,但是如果我想讓它做到這兩個檔案都可以偵聽和連接怎么辦。
例如:這是我的 server.py
def main():
print("[STARTING] Server is starting...")
""" Starting a TCP socket """
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(ADDR)
server.listen()
print("[LISTENING] Server is listening...")
while True:
""" Accept the connection from the client """
conn, addr = server.accept()
addr = socket.gethostname()
print(f"[NEW CONNECTION] {addr} connected.")
這是我的 client.py
def main():
""" Staring a TCP socket. """
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
while True:
""" Connecting to the server. """
client.connect(ADDR)
我怎樣才能只在一個檔案中完成這兩個任務,比如“Server-Client.py”。因此,如果我想在一臺計算機上使用 Server-Client.py 作為客戶端,它可以使用客戶端,如果我想在另一臺計算機上使用 Server-client.py 作為服務器,它可以用作服務器,并且反過來。
有任何想法嗎?
uj5u.com熱心網友回復:
將服務器代碼放在一個函式中,將客戶端代碼放在另一個函式中。然后根據用戶要求的是“客戶端”還是“服務器”呼叫適當的函式。
import sys
def client():
# client code here
def server():
# server code here
if __name__ == '__main__':
if sys.argv[1] == 'client':
client()
elif sys.argv[1] == 'server':
server()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/402097.html
