Java - Как работают DatagramPacket и DatagramSocket? [Дубликат]

Добавление моей собственной версии, просто чтобы показать некоторые трюки itertools v2.7:

import itertools

def Primes():
    primes = []
    a = 2
    while True:
        if all(itertools.imap(lambda p : a % p, primes)):
            yield a
            primes.append(a)
        a += 1

# Print the first 100 primes
for _, p in itertools.izip(xrange(100), Primes()):
    print p
5
задан ZelelB 30 December 2012 в 00:00
поделиться

2 ответа

Да, это возможно. Ваша проблема в том, что у вас есть целевой адрес: неправильный порт при отправке дейтаграммы ACK. Вы должны получить целевой адрес: порт из принятого DatagramPacket или просто еще повторное использование , что датаграмма с разными данными в качестве дейтаграммы ACK.

3
ответ дан user207421 25 August 2018 в 06:32
поделиться

Как сервер может отправлять клиенту с помощью собственного порта? Вы отправляете ACK с сервера на клиентский порт сервера, вы должны получить UDP-порт клиента из полученного пакета и отправить данные на этот порт.

EDIT

Изменить сервер в методе SendACK на :

ackPacket = new DatagramPacket(ackArray, ackArray.length, InetAddress.getByName("localhost"), incomingPacket.getPort());

И теперь проанализируйте код, запустив.

1
ответ дан nullptr 25 August 2018 в 06:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: