SyntaxError: неверный синтаксис для listen () в python программировании сокетов - PullRequest
0 голосов
/ 16 февраля 2020

Ниже приведен код для передачи файла с Сервера. Я получаю сообщение об ошибке

Ошибка s.listen (2) ^ Синтаксическая ошибка: неверный синтаксис

Код сервера

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 и программировании сокетов.

1 Ответ

0 голосов
/ 16 февраля 2020

В этой строке отсутствует закрывающая скобка кортежа:

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