Python 3.x SyntaxError:python套接字编程中listen()的语法无效
以下是从服务器传输文件的代码。我听到了一个错误的说法 错误 s、 听(2) ^ SyntaxError:无效语法 服务器代码Python 3.x SyntaxError:python套接字编程中listen()的语法无效,python-3.x,sockets,tcp,server,Python 3.x,Sockets,Tcp,Server,以下是从服务器传输文件的代码。我听到了一个错误的说法 错误 s、 听(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(filena
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()
导入套接字
导入线程
导入操作系统
def RetrFile(名称、sock):
filename=sock.recv(1024)
如果os.path.isfile(文件名):
send(“存在”+str(os.path.getsize(filename)))
userResponse=sock.recv(1024)
如果userResponse[:2]=“确定”:
将open(filename,'rb')作为f:
bytesToSend=f.read(1024)
sock.send(bytesToSend)
而bytesToSend!="":
bytesToSend=f.read(1024)
sock.send(bytesToSend)
其他:
短袜发送(“错误”)
sock.close()
def Main():
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s、 绑定((socket.gethostname(),1235)
s、 听(2)
打印(“服务器已启动”)
尽管如此:
c、 addr=s.accept()
打印(“客户端连接的ip:)
线程(target=RetrFile,arfs=(“retrThread”,c))
t、 开始()
s、 关闭()
如果uuuu name uuuuuu='uuuuuuu main uuuuuuuuuuuuu':
Main()
有人能帮我理解为什么会出现这个错误吗?我是python和socket编程新手。这一行缺少元组的右括号:
s.bind((socket.gethostname(),1235)
我相信这是因为您在前一行的
绑定调用中有一个额外的(
。删除它,我认为语法错误就会消失。