Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x SyntaxError:python套接字编程中listen()的语法无效_Python 3.x_Sockets_Tcp_Server - Fatal编程技术网

Python 3.x SyntaxError:python套接字编程中listen()的语法无效

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

以下是从服务器传输文件的代码。我听到了一个错误的说法

错误 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(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)

我相信这是因为您在前一行的
绑定
调用中有一个额外的
。删除它,我认为语法错误就会消失。