Это файл server.py, который запускает базовый сервер:
import socket
import sys
sockett = socket.socket()
sockett.bind(('127.0.0.1', 123))
sockett.listen(10)
while True:
print('1', end='')
while True:
print('2', end='')
try:
client, addr = sockett.accept()
print(client,addr)
break
except Exception as e:
print(e)
print(client.recv(400))
print(client.recv(1024))
print('3')
print('4')
А это код client.py, который я запускаю:
import socket
import sys
sockett = socket.socket()
sockett.connect(('127.0.0.1', 123))
sockett.send(b'0')
print("Hello")
Сомнение яесть то, что когда я запускаю файл server.py (пусть S), а затем файл client.py (пусть C), S продолжает работать, но C прекращает работу, что должно быть, но точка, в которой S застревает, являетсяГлавная проблема. Он печатает 3 в первый раз, а затем ничего не печатает, а не 4 (поэтому не из цикла), а не 1 (так что по-прежнему не зацикливается). В чем может быть причина? Где код после того, как он напечатал 3? Это вывод, который я получаю:
12<socket......>(...)
b'0'
b''
3
_ (keeps on running indefinitely)
По моему мнению, сначала он должен вывести 1, затем 2, а затем столкнуться с ошибкой, которая будет обработана try-исключения, и затем вывести:
b''
b''
3
, а затем продолжайте цикл, как это.