0
동일한 DatagramSocket 객체를 사용하여 두 개의 다른 포트를 사용하여 읽고 쓸 수 있습니까? 포트 X에서 수신하고 포트 X + 1에 기록해야합니다. 현재 내가 뭘하는지 : 나중에다른 포트를 사용하는 UDP 읽기/쓰기
sock = new DatagramSocket(5000);
byte[] buffer = new byte[DataAdapterFB1.HEADER_SIZE + DataAdapterFB1.MAX_DATA_BYTES];
DatagramPacket incoming = new DatagramPacket(buffer, buffer.length);
sock.receive(incoming);
과 :
dp = new DatagramPacket(send.getBytes(), send.getBytes().length, DataAdapterFB1.ccuAddr, 5001);
sock.send(dp);
나는 와이어 샤크에 송신 패킷의 출력 중 하나를 볼 수 없습니다.
sock = new DatagramSocket();
byte[] buffer = new byte[DataAdapterFB1.HEADER_SIZE + DataAdapterFB1.MAX_DATA_BYTES];
DatagramPacket incoming = new DatagramPacket(buffer, buffer.length,DataAdapterFB1.localhost, 5000);
sock.receive(incoming);
dp = new DatagramPacket(send.getBytes(), send.getBytes().length, DataAdapterFB1.Addr, 5001);
sock.send(dp);
을하지만 작동하지 않습니다
나 또한 노력했다. 나는 2 개의 datagramsocket 객체를 사용하여 작동하도록 만들 수 있었다. (읽기 하나는 선언의 포트를 바인드하고 쓰기는 그렇지 않습니다). 하지만 하나만 가지고 할 수 있는지 알고 싶습니다.
소켓 리 바인드를 시도 했습니까? 수신 할 때 5000으로 바인딩해야하고 보낼 때는 5001로 바인딩해야하지만 동일한 객체를 사용할 수 있습니다. http://download.java.net/jdk7/archive/b123/docs/api/java/net/DatagramSocket.html#bind(java.net.SocketAddress) – arynaq
아니요, 가능하지 않으며 요청 사항도 의심 스럽습니다. . 그것은 항구 낭비입니다. 이 이상한 디자인의 이유는 무엇입니까? – EJP
@arynaq 자신의 인용문은 불가능하다는 것을 보여줍니다. – EJP