안녕하세요 여러분, 저는 실제 인터넷에서 UDP 패킷을 브로드 캐스트하고 클라이언트에서 수신해야하는 프로젝트를 진행하고 있습니다. 현재 로컬 LAN에서 패킷을 브로드 캐스팅하기 위해 멀티 캐스트 소켓을 사용하고 있습니다. UDP 데이터 그램의 NAT 탐색을 위해 jstunt라고 불리는이 프로젝트를 보았습니다. 그러나 관련 문서를 찾을 수 없으며 구현도 없습니다. 나는 Nat Traversal의 개념 인 UDP hole punching에 익숙하지만 위와 같은 문제에 직면 해 있으며 관련 문서 및 구현은 없습니다. 그래서 누구든지 도와 주실 수 있으며 또한 이것을 달성하기위한 몇 가지 다른 기법을 제안 할 수 있습니다.Java에서 udp 소켓 프로그래밍에 대한 도움이 필요합니다.
답변
다른 포스터에서 언급했듯이 인터넷에 패킷을 자유롭게 "브로드 캐스팅"할 수는 없습니다. 이것이 가능하다면, 네트워크는 쉽게 DOS화될 수 있으며 엄청난 혼잡이 초래 될 수 있습니다. 제어 된 네트워크 내에서도 방송은 일반적으로 엄격하게 통제되어있어 방해받지 않습니다. 즉, 아마도 패킷을 "브로드 캐스트"할 필요가 없을 것입니다.
P2P 소프트웨어의 작동 방식과 같이 인터넷을 통해 UDP "터널"을 만들어야하는 경우 수행 할 수 있습니다. 트릭은 일반적으로 NAT입니다. UDP 구멍 펀칭에 이미 익숙하다는 말을했지만 작동 방법을 알아낼 수는 없습니다. 다음은이에 사용할 수있는 자바 라이브러리입니다
http://www.masquerade.cz/en/nat-tunel-metodou-udp-hole-punching-v-jazyce-java/ http://ulno.net/projects/jpunch/는 http://samy.pl/pwnat/
또한 체크 아웃 UPNP : http://en.wikipedia.org/wiki/Universal_Plug_and_Play
그리고 스턴트 라이브러리 : http://nutss.gforge.cis.cornell.edu/stunt.php
고마워요. 나는 당신의 제 2 연결을 통해 가고 유용하다는 것을 발견하고있다. – anonymous123
인터넷 백본이 허용하거나 허용하지 않는 것은 물론 귀하의 ISP와 고객이 UDP 브로드 캐스트를 지원할 가능성은 거의 없습니다. 먼저 을 조사해야합니다. 아직 프로그래밍 문제는 아니지만 실현 가능성 문제입니다.
에 동의 했으니 까 네가 나트에서 빠져 나올 수 있다고해도 그건 너가 갈 때까지이다. 다른 네트워크에 메시지를 전송하려면 연결된 소켓이 필요합니다. 소켓의 끝 부분이 다시 브로드 캐스트 될 수 있습니다. – MeBigFatGuy
UDP 소켓 ITS를 도울를 사용하여 기본 DAY TIME 서버 구현
CLIENT 서버
import java.io.*;
import java.net.*;
public class DayTime_Server_Udp
{
public static final int DEFAULT_PORT = 3001;
public static void main (String[] args) throws IOException
{
if (args.length > 1)
{
throw new IllegalArgumentException ("Syntax: DaytimeServer [<port>]");
}
DatagramSocket socket = new DatagramSocket(args.length == 0 ?
DEFAULT_PORT : Integer.parseInt (args[0]));
DatagramPacket packet = new DatagramPacket (new byte[1], 1);
while (true)
{
socket.receive (packet);
System.out.println("Received from: " + packet.getAddress() + ":" +
packet.getPort());
byte[] outBuffer = new java.util.Date().toString().getBytes();
packet.setData (outBuffer);
packet.setLength (outBuffer.length);
socket.send (packet);
}
}
}
import java.io.*;
import java.net.*;
public class DayTime_Client_Udp
{
public static void main (String[] args) throws IOException
{
String hostname= "localhost";
int port=13;
if ((args.length == 1))
{
hostname=args[0];
}
else if ((args.length==2))
{
hostname=args[0];
port=Integer.parseInt(args[1]);
}
InetAddress host = InetAddress.getByName(hostname);
DatagramSocket socket = new DatagramSocket();
DatagramPacket packet=new DatagramPacket (new byte[100], 0,host, port);
socket.send (packet);
packet.setLength(100);
socket.receive (packet);
socket.close();
byte[] data = packet.getData();
String time=new String(data); // convert byte array data into string
System.out.println(time);
}
}
IF 더 HELP 필요 이상으로 주석 IT 나는 또한 UDP BASD 다른 프로그램을 SO ITS HELP UU
- 1. 템플릿 프로그래밍에 대한 도움이 필요합니다.
- 2. Ajax 프로그래밍에 익숙해지고 도움이 필요합니다.
- 3. 은 Java에서 시스템 호출에 대한 도움이 필요합니다.
- 4. Java에서 sql 구문 분석에 대한 도움이 필요합니다.
- 5. 소켓 타임 아웃 - 도움이 필요합니다
- 6. UDP 소켓 프로그래밍에 대해 알아야 할 사항은 무엇입니까?
- 7. Java의 TCP 소켓 프로그래밍에 대한 소개가 좋습니까?
- 8. Perl TCP 소켓 프로그래밍에 대한 질문
- 9. lwuit에 대한 도움이 필요합니다.
- 10. CvSVM에 대한 도움이 필요합니다.
- 11. GetShortPathName에 대한 도움이 필요합니다.
- 12. SC.SelectView에 대한 도움이 필요합니다.
- 13. applicationDidBecomeActive에 대한 도움이 필요합니다.
- 14. 이 로직에 대한 도움이 필요합니다.
- 15. 여러 번 보낸 C# 비동기 소켓 프로그램에 대한 도움이 필요합니다.
- 16. iPad 애니메이션 프로그래밍에 대한 가이드 라인이 필요합니다.
- 17. UDP 소켓 프로그래밍 도움말
- 18. Java에서 컵에서 AST를 작성하는 데 도움이 필요합니다.
- 19. Java에서 문자열이 인스턴스인지 확인하는 데 도움이 필요합니다.
- 20. Java에서 DICOM을 구현하는 데 도움이 필요합니다.
- 21. 클라이언트 서버 udp 소켓
- 22. 은 VB6에서 ADO에 대한 도움이 필요합니다.
- 23. Flex에서 XMLList에 대한 도움이 필요합니다.
- 24. WebBrowser 사용에 대한 도움이 필요합니다.
- 25. PHP - Regex에 대한 도움이 필요합니다.
- 26. MySQL 쿼리에 대한 도움이 필요합니다.
- 27. JSON 문제에 대한 도움이 필요합니다
- 28. div 생성에 대한 도움이 필요합니다.
- 29. 이미지 버튼에 대한 도움이 필요합니다.
- 30. mysql 쿼리에 대한 도움이 필요합니다.
당신이 전체 인터넷에 뭔가를 방송 할 필요가 확실한가요? 내 바이러스 백신이 오래되었다고 말하면서 지금 업데이트하려면 클릭해야하며,보고 싶지는 않습니다! – corsiKa