그렇기 때문에 프로그램은 연결을 받아들이고 유효성을 검사 한 다음 해당 유효성 검사 코드를 다시 보내도록 설계되었습니다. 누구나 화를 내기 전에 그것은 단순한 작은 프로젝트 일 뿐이며 지나치게 복잡한 하하가되도록 고안되지 않았습니다. 그러나 매우 이상한 이유로 함수가 걸려있다 send.setAddess (packet.getAddress); 데이터 그램 패킷을 "보내는"코드를 처리하고 해당 특정 줄에 "중단"(또는 다시 메서드에서 앞으로 진행하지 않음)을 발견 한 각 개별 코드 줄을 주석으로 처리했기 때문에이 사실을 알고 있습니다. 이견있는 사람? 우연히 나쁘게 뭔가하고있는거야? 나는 리눅스 서버에서 그것을 시험해 보았는데 나와 함께 할 일이 없도록하고 같은 일이 일어났습니다.함수가 정지됩니까? on packet.setAddress()
public static boolean authorize(String n, DatagramPacket packet) {
DatagramPacket send = new DatagramPacket(new byte[4096], 4096);
try {
System.out.println("in auth");
String[] t1 = n.split("%@");
String name = t1[1];
int k = genKey(name);
clients.put(name, k);
send.setAddress(packet.getAddress());
System.out.println("set add");
send.setPort(packet.getPort());
System.out.println("set port");
send.setData(("l-succeed%@" + Integer.toString(k)).getBytes());
System.out.println("set data");
main.dispathcer(send);
System.out.println("called send");
return true;
} catch(Exception e) {
send.setData("l-failed".getBytes());
main.dispathcer(send);
return false;
}
}
편집 : 인증 토큰이 클라이언트에 의해 수신하기 전에 6 분했다. 그래서 분명히 setAddress()는 작동하지만 너무 오래 걸립니다.
당신이 말하는 행동을 보여주는 [SSCCE] (http://sscce.org)를 게시 할 수 있습니까? – oldrinb
일부 유머 메이트 : P – Bjornke
'DatagramPacket.getAddress'는 DNS 조회를해서는 안되지만 어쨌든'send.setSocketAddress (packet.getSocketAddress());'시도한 적이 있습니까? 이것은 IP와 포트 문제를 모두 다루어야합니다. – oldrinb