есть сервер на Python:
#!/usr/bin/env python3
import socket
host = "192.168.43.38"
port = 8080
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((host, port))
s.listen(5)
sock, addr = s.accept()
print("client connected with address " + addr[0])
sock.send(b"hello!")
while True:
buf = sock.recv(1024)
buf = buf.rstrip()
if buf.decode('utf8') == "exit":
sock.send(b"bye")
break
elif buf:
sock.send(buf)
print(buf.decode('utf8'))
sock.close()
и клиент на нем же:
#!/usr/bin/env python3
import socket
import time
host = "192.168.43.38"
port = 8080
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
while True:
buf = input()
s.send(buf.encode('utf8'))
result = s.recv(1024)
print('Ответ сервера: ', result.decode('utf8'))
if buf == "exit":
break
s.close()
time.sleep(10)
все бы ничего, но связка не корректно работает в режиме чата, а именно: после подключения клиента к серверу в окне сервера пишется "client connected with address...........", но следующая строка "hello!" клиенту не отправляется. далее, если с клиента написать серверу "stroka2", то на сервере отобразиться "stroka2" от клиента, а клиенту придет та самая строка "hello!", то есть получается, что от сервера приходят строки с опоздание м на одну строку. как это исправить?