我开始在python中开发一个客户端/服务器脚本,在终端中使用一些输入参数,参数:( in)(out)(ip)(port)(mode)根据下面的代码。在被动模式下,它作为服务器,在活动模式下,它充当客户端。但我不明白出现错误的原因。有人可以向我解释一下发生了什么吗?谢谢。
码
def Main(): mode = sys.argv[5] i = 0 # Auxiliar variable in loop if (mode == "passive"): port = int(sys.argv[4]) mySocket = socket.socket() mySocket.bind(('', port)) # Passive connection, for server mySocket.listen(1) conn, addr = mySocket.accept() conn.settimeout(1) # Timeout = 1 segundo conn.setblocking(0) # Non blockable mode print("Connection from: " + str(addr)) print("Connected as server") in_arq = open(sys.argv[1], 'r') message = in_arq.read() # File to be send out_arq = open(sys.argv[2], 'w') # File to save data received elif (mode == "ative"): host = sys.argv[3] port = int(sys.argv[4]) mySocket = socket.socket() mySocket.connect((host, port)) # Active connection, for client mySocket.settimeout(1) # Timeout = 1 segundo mySocket.setblocking(0) # Non blockable mode print("Connected as client") in_arq = open(sys.argv[1], 'r') message = in_arq.read() # File to be send out_arq = open(sys.argv[2], 'w') # File to save data received else: print("Wrong arguments.") if __name__ == '__main__': Main()
错误:
C:\ Users \ AppData \ Local \ Programs \ Python \ Python35-32 \ python.exe C:/Users/Desktop/emulator.py C:\ Users \ Desktop \ textinput C:\ Users \ Desktop \ textoutput 127.0 .0.1 54000 ative
追踪(最近一次呼叫最后一次):
File "C:/Users/Desktop/emulator.py", line 221, in <module>
Main()
File "C:/Users/Desktop/emulator.py", line 202, in Main
in_arq = open(sys.argv[1], 'r')
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Desktop\\textinput'
以客户端身份连接