Но без успеха. < /P>
Я гуглил и искал в Stackoverflow, но не могу найти никаких похожих сообщений.
Код: Выделить всё
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/javafx/FXMain.java to edit this template
*/
package listentest2;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import javafx.application.Application;
import javafx.concurrent.Task;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
< /code>
public class listEntest2 extends Application
{< /p>
private Thread listenThread;
Task chargerListenerTask = new Task()
{
int noOfMessages = 0;
@Override
protected Integer call() throws Exception
{
updateMessage("Listener thread started");
while (true)
{
if (isCancelled())
{
updateMessage("Listener thread cancelled");
break;
}
try
{
// Constructs a datagram socket and binds it to the specified port on the local host machine..
DatagramSocket socket = new DatagramSocket(7090);
System.out.println("UDP listener started on port 7090");
// Buffer to hold incoming datagrams
byte[] buffer = new byte[1024];
while (true)
{
// Create a DatagramPacket to hold the incoming datagram
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
// Receive the incoming datagram
socket.receive(packet);
// Extract the message from the datagram
String message = new String(packet.getData(), 0, packet.getLength());
InetAddress chargerAddress = packet.getAddress();
int senderPort = packet.getPort();
// Print out the received message and sender's address
System.out.printf("Received message: \"%s\" from %s:%d%n", message, chargerAddress, senderPort);
}
}
catch (IOException e)
{
}
updateMessage("Listener thread: Listen terminated");
}
updateMessage("Listener thread finished");
return 0;
}
};
@Override
public void start(Stage primaryStage)
{
listenThread = new Thread(chargerListenerTask);
listenThread.setDaemon(true);
listenThread.start();
Button btn = new Button();
btn.setText("Say 'Hello Listener'");
btn.setOnAction(new EventHandler()
{
@Override
public void handle(ActionEvent event)
{
System.out.println("Hello Listener!");
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello Listener!");
primaryStage.setScene(scene);
primaryStage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
launch(args);
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... windows-10