다음 UDP 클라이언트 및 servcer 클래스가 있는데 로컬 호스트와 포트에서 동일한 Java 프로젝트의 다른 클래스 'UDPServer'로 UDPClient
의 일부 문자열을 보내려고합니다. 7777. UDPServer 클래스의 UDPClient 클래스에서 아무것도 수신하지 못하는 문제에 직면하고 있습니다. 문제가있는 사람은 누구입니까?UDPServer가 UDPClient에서 보낸 데이터를받지 못했습니다.
감사합니다. 당신이 코드가 확인 작동하기 때문에
UDPClient
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
class UDPClient {
public static void main(String args[]) throws Exception {
String aString = "Hello World";
DatagramSocket clientSocket = new DatagramSocket();
InetAddress IPAddress = InetAddress.getByName("localhost");
byte[] sendData = new byte[1024];
byte[] receiveData = new byte[1024];
sendData = aString.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 7777);
clientSocket.send(sendPacket);
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
String modifiedSentence = new String(receivePacket.getData());
System.out.println("FROM SERVER:" + modifiedSentence);
clientSocket.close();
}
}
UDPServer
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
class UDPServer {
public static void main(String args[]) throws Exception {
DatagramSocket serverSocket = new DatagramSocket(7777);
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while (true) {
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
String sentence = new String(receivePacket.getData());
System.out.println("RECEIVED: " + sentence);
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
String capitalizedSentence = sentence.toUpperCase();
sendData = capitalizedSentence.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
serverSocket.send(sendPacket);
}
}
}
데이터 그램 서버에 대한 예외가 있습니까? – thepaulo
@Sonor 아니요 어떤 오류나 예외는 발생하지 않습니다. – water
코드가 내 컴퓨터에서 의도 한대로 작동하는 것 같습니다. – scsere