Проблемы при ошибке: fd, addr = self._accept () - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь установить соединение между сервером и клиентом в Python.но программа просто работает до ожидания соединения. Программа не может прочитать адреса.

import socket
import sys

host = ''
port = 5131

s = socket.socket()

s.bind((host,port))

s.listen(1)
print('listening')


while 1:

    print('Waiting for a connection......')
    c, addr = s.accept()
    print('Connection established with', addr)


c.close()

, и результат выглядит так:

listening
Waiting for a connection......
Traceback (most recent call last):
  File "/Users/muhrisdham/Downloads/tugas/01.tugas_tcp_server.py", line 32, in <module>
    c, addr = s.accept()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socket.py", line 212, in accept
    fd, addr = self._accept()
KeyboardInterrupt

простите мой английский, спасибо, прежде чем

1 Ответ

0 голосов
/ 31 марта 2019

Полагаю, вы нажали Ctrl + C, когда программа застряла.Отсюда KeyboardInterrupt.

Вы написали сервер .Он предназначен для блокировки при вызове s.accept(), пока в вашем случае не будет установлено новое соединение с адресом, который он слушает (0.0.0.0:5131).Как только будет установлено новое соединение, вы обработаете это соединение (каким-то образом).

Теперь все, что вам осталось сделать, - это реализовать клиент .

Посмотрите этот урок: https://pymotw.com/2/socket/tcp.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...