Привет пиплы! Python сервер:
import socket, os
s = socket.socket()
s.bind(('0.0.0.0', 500))
s.listen(5)
while True:
c, addr = s.accept()
data = c.recv(1024)
print(str(data))
Java клиент:
String data = "Test";
try (Socket socket = new Socket("localhost", 5000)) {
try (DataOutputStream os = new DataOutputStream(socket.getOutputStream())) {
while(true){
os.write(data.getBytes("utf-8"), 0, data.length());
}
}
}
При очень большом потоке пакетов происходит склеивание(сервер выводит "TestTe" или TestTestTest) как это исправить?
UDP использует простую модель передачи, без неявных «рукопожатий» для обеспечения надёжности, упорядочивания или целостности данных. Таким образом, UDP предоставляет ненадёжный сервис, и датаграммы могут прийти не по порядку, дублироваться или вовсе исчезнуть без следа. UDP подразумевает, что проверка ошибок и исправление либо не нужны, либо должны исполняться в приложении.
https://ru.wikipedia.org/wiki/UDP
Отсюда следует, что вам придётся из клиента вместе с каждым символом отправлять его порядковый номер, а на сервере добавить код проверки, что номера идут подряд без разрывов, код повторного запроса потерянных пакетов, код игнорирования дублей и код упорядочивания принятых данных. Либо перейти на использование протокола TCP, который всё это реализует за вас.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости