客户端和服务器都在一个文件上工作
Both client and server works on one file
所以我有一个使用套接字的程序,它只接受连接,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 用作另一台计算机上的服务器,它可以用作服务器,反之亦然。
有什么想法吗?
将服务器代码放在一个函数中,将客户端代码放在另一个函数中。然后根据用户请求的是“客户端”还是“服务器”来调用相应的函数。
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()
所以我有一个使用套接字的程序,它只接受连接,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 用作另一台计算机上的服务器,它可以用作服务器,反之亦然。
有什么想法吗?
将服务器代码放在一个函数中,将客户端代码放在另一个函数中。然后根据用户请求的是“客户端”还是“服务器”来调用相应的函数。
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()