クライアントサーバー予約システムの GUI を作成するために、swing jFrame を使用しています。これで宣言された DatagramSocket を使用したいクライアントで問題が発生しました。
public BookingClientUI() throws SocketException {
DatagramSocket clientSocket = new DatagramSocket(9876);
initComponents();
RecvPacket recvProcess = new RecvPacket(clientSocket);
Thread recvThread = new Thread(recvProcess);
recvThread.start();
}
後でこのボタンで ActionPerformed:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
try {
String passwordString = new String(passwordfield.getPassword());
byte[] passwordBytes = passwordString.getBytes();
byte[] packetData = new byte[1500];
packetData = SendPacketHandler.packetConstructor(SendOpcodes.REGISTER_USER,usernamefield.getText(),EncryptionHandler.hashPassword(passwordBytes));
DatagramPacket packet = new DatagramPacket(packetData,packetData.length,InetAddress.getByName("127.0.0.1"),9876);
clientSocket.send(packet);
} catch (NoSuchAlgorithmException | UnknownHostException | IOException ex) {
Logger.getLogger(BookingClientUI.class.getName()).log(Level.SEVERE, null, ex);
}
}
明らかに、次の行:
clientSocket.send(packet);
宣言された DatagramSocket がスコープ内にないため、「シンボルが見つかりません」というエラーが発生します。ただし、Java で数日間しかプログラミングしていないため、これを修正する方法がわかりません。
どんな助けでも大歓迎です。