JavaFxとその機能を初めて使用しています。私はローカル接続で再生される2人のチェッカーのゲームを作成しています。 JavaFXではメインクラスは必要ないと理解しています。なぜなら、開始関数の@Overrideは基本的にメインとして機能するからです。今私は、その開始関数で作成しようとしている私の接続を持っているが、私がしようとするたびにjava.net.BindExceptionとjava.lang.RuntimeExceptionを吐き続ける。私は自分のポートを見て、それは使用されていません。私は、コードの接続部分をコメントアウトし、アプリケーションを実行することができました。あなたはスタート機能で接続できませんか?オーバーライドされた開始関数のJavaソケットプログラミング
クライアントコード:
@Override
public void start(Stage primaryStage) throws Exception, ClassNotFoundException, IOException,UnknownHostException {
Scene scene1 = new Scene(createContent());
primaryStage.setTitle("Client Side");
primaryStage.setScene(scene1);
primaryStage.show();
socket = new Socket("127.0.0.1",1337);
boolean end = false;
boolean turn = true;
Serializable ObjectInputStream;
ObjectInputStream I = new ObjectInputStream(socket.getInputStream());
Serializable ObjectOutputStream;
ObjectOutputStream o = new ObjectOutputStream(socket.getOutputStream());
Scanner scan = new Scanner(socket.getInputStream());
PrintStream p = new PrintStream(socket.getOutputStream());
do
{
while(turn == true)
{
temp1 = scan.nextInt();
temp2 = scan.nextInt();
Checker check = (Checker) I.readObject();
check.relocate(temp1, temp2);
turn = false;
}
while(turn == false)
{
p.println(sendX);
p.println(sendY);
o.writeObject(sendO);
turn = true;
}
}while(end == false);
}
Serverコードはまさにそれの逆である:
@Override
public void start(Stage primaryStage) throws Exception,
ClassNotFoundException, IOException,UnknownHostException {
Scene scene = new Scene(createContent());
primaryStage.setTitle("Server Side");
primaryStage.setScene(scene);
primaryStage.show();
serverSocket = new ServerSocket(1337);
Socket socket = serverSocket.accept();
boolean end = false;
boolean turn = true;
Serializable ObjectInputStream;
Serializable ObjectOutputStream;
ObjectInputStream I = new ObjectInputStream(socket.getInputStream());
ObjectOutputStream o = new ObjectOutputStream(socket.getOutputStream());
Scanner scan = new Scanner(socket.getInputStream());
PrintStream p = new PrintStream(socket.getOutputStream());
do
{
while(turn == true)
{
p.println(sendX);
p.println(sendY);
o.writeObject(sendO);
turn = false;
}
while(turn == false)
{
temp1 = scan.nextInt();
temp2 = scan.nextInt();
Checker check = (Checker) I.readObject();
check.relocate(temp1, temp2);
turn = true;
}
}while(end == false);
}
ダイスはありません。私はまだ同じエラーが発生しています。それは私がスタートメソッドでこれを行うのが好きではないようです。私はどこでそれをやるべきかわからない。 – unclass123
同じポートに別のプロセスをバインドしていただきありがとうございます。 – Shomu