【发布时间】:2020-05-31 10:57:45
【问题描述】:
以下是从服务器传输文件的代码。我收到错误提示
错误 听(2) ^ SyntaxError: 无效语法
服务器代码
import socket
import threading
import os
def RetrFile(name,sock):
filename = sock.recv(1024)
if os.path.isfile(filename):
sock.send("EXISTS " + str(os.path.getsize(filename)))
userResponse = sock.recv(1024)
if userResponse[:2] == 'OK':
with open(filename,'rb') as f:
bytesToSend = f.read(1024)
sock.send(bytesToSend)
while bytesToSend != "":
bytesToSend = f.read(1024)
sock.send(bytesToSend)
else:
sock.send("ERR")
sock.close()
def Main():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((socket.gethostname(),1235)
s.listen(2)
print("Server started")
while True:
c,addr = s.accept()
print("Client connected ip:<" + str(addr) + ">")
t = threading.Thread(target = RetrFile, arfs=("retrThread", c))
t.start()
s.close()
if __name__ = '__main__':
Main()
有人可以帮助我了解为什么会出现此错误吗?我是 python 和套接字编程的新手。
【问题讨论】:
-
我相信这是因为您在上一行的
bind调用中多了一个(。删除它,我认为语法错误会消失。
标签: python-3.x sockets tcp server