【问题标题】:SyntaxError: invalid syntax for listen() in python socket programmingSyntaxError:python套接字编程中listen()的无效语法
【发布时间】: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


【解决方案1】:

这一行缺少元组的右括号:

s.bind((socket.gethostname(),1235)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-13
    • 2023-01-22
    • 1970-01-01
    • 2017-05-07
    • 2012-10-05
    • 1970-01-01
    • 2022-01-10
    相关资源
    最近更新 更多