Witam chciałem spróbować przepisać serwer UDP na aplikacje GUI w javeie jednak występują jakieś komplikacje. Z racji, że jestem nowy w javie to nie rozumiem tych błędów i prosił bym o pomoc, jak i wskazanie błędu. Dziękuję.
bledy:
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
package serwer;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.awt.event.ActionEvent;
import java.io.*;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class serwer {
private JFrame frame;
private JTextField textField;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
serwer window = new serwer();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public serwer() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JButton btnNewButton = new JButton("New button");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DatagramSocket sock = null;
try
{
//1. creating a server socket, parameter is local port number
sock = new DatagramSocket(7777);
//buffer to receive incoming data
byte[] buffer = new byte[65536];
DatagramPacket incoming = new DatagramPacket(buffer, buffer.length);
//2. Wait for an incoming data
textField.setText("Server socket created. Waiting for incoming data...");
//communication loop
while(true)
{
sock.receive(incoming);
byte[] data = incoming.getData();
String s = new String(data, 0, incoming.getLength());
//echo the details of incoming data - client ip : client port - client message
textField.setText(incoming.getAddress().getHostAddress() + " : " + incoming.getPort() + " - " + s);
s = "OK : " + s;
}
}
catch(IOException e)
{
System.err.println("IOException " + e);
}
}
});
btnNewButton.setBounds(15, 38, 115, 29);
frame.getContentPane().add(btnNewButton);
JLabel lblNewLabel = new JLabel("New label");
lblNewLabel.setBounds(31, 142, 69, 20);
frame.getContentPane().add(lblNewLabel);
textField = new JTextField();
textField.setBounds(15, 187, 146, 26);
frame.getContentPane().add(textField);
textField.setColumns(10);
}
}