我是使用JavaFx及其功能的新手。我正在創建一個由本地連接播放的2人跳棋遊戲。我知道在JavaFX中,你不需要主類,因爲start函數的@Override基本上是你的主類。現在我的連接試圖在該啓動函數中進行,但每次嘗試時它都會繼續吐出java.net.BindException和java.lang.RuntimeException。我看着我的端口,它沒有被使用。我評論了代碼的連接部分,並且該應用程序能夠運行。你是否無法連接啓動功能?在啓用函數中進行Java Socket編程
客戶端代碼:
@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);
}
服務器代碼剛好相反的是:
@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