Ich habe UDP-Server-Client-Programm geschrieben. Das Problem, das ich gegenüberstelle, ist, dass, wenn ich Serverprogramm ausführe, es nicht darauf wartet, dass sich der Client verbindet. Der gesamte Code wird nach dem Ausführen bis zum Ende ausgeführt. Und wenn ich die Client-Seite zwischen der Ausführung der Server-Seite ausführen, empfängt die Client-Seite Daten von ihrem Ausführungspunkt. Hier ist mein Server Code-Udp Server Client Java
public static void main(String args[]) throws Exception
{
DatagramSocket serverSocket = new DatagramSocket(4321);
byte[] sendData;
String sentence = null;
FileInputStream file = new FileInputStream(new File("E:\\Deepak.txt"));
InetAddress IPAddress=InetAddress.getByName("localhost");
BufferedReader in = new BufferedReader(new InputStreamReader(file));
do{
while((sentence = in.readLine()) != null)
{
Thread.sleep(3000);
System.out.println(sentence);
sendData = sentence.getBytes();
DatagramPacket sendPacket =new DatagramPacket(sendData, sendData.length,IPAddress,9876);
serverSocket.send(sendPacket);
}
}while(true);
}
hier meine Client-Seite ist Code-
public static void main(String args[]) throws SocketException, UnknownHostException, IOException
{
DatagramSocket clientSocket = new DatagramSocket();
byte[] receiveData = new byte[1024];
String sentence ;
while(true)
{
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
receivePacket.getLength();
System.out.println(receivePacket.getLength());
clientSocket.receive(receivePacket);
sentence = new String(receivePacket.getData());
}
}
Können Sie mir bitte sagen, wie ich meine eigene Verbindung über UDP implementieren kann, wenn ich einen Server haben möchte, der nur Daten sendet, wenn der Client mit ihm "verbindet". Ich bin neu in der Socket-Programmierung. –
Wäre es nicht möglich, den Server zu ändern, um das 'receive' zu tun? Es ist der einfachste Weg. –
Nein. Meine spezifische Anwendung muss Server als Sender und Client als Empfänger implementiert werden. –