マルチプレイヤーJavaゲームを作成しようとしていますが、Javaソケットサーバーを使用することにしました。「クライアント」は、両方が私のコンピューターで実行されている場合、サーバーに問題なく接続および通信できますが、クライアントファイルを別のコンピューター(同じネットワークに接続されている)に送信すると、サーバーに接続できません、そしてその理由がわかりません。cmdを実行してnetstat-aのコードに慣れ、サーバーが127.0.0.1:3251でリッスンしていることを確認できたので、問題はクライアントにあると思います。
サーバーの作成方法は次のとおりです。
try {
this.serverSocket = new ServerSocket();
this.serverSocket.bind(new InetSocketAddress("localhost",port)); //port is 3251
window.show("SERVER: " + "Created On Port: " + port);
} catch (IOException e) {
window.show("SERVER: " + e.getMessage());
window.show("SERVER: " + "Unable To Create Server :(");
}
これがクライアントの接続方法です。
try {
socket = new Socket("localhost", 3251);
} catch (IOException e) {
e.printStackTrace();
}
サーバーが接続を受け入れると、新しいスレッドが作成されます。
Socket socket = this.serverSocket.accept();
ServerThread serverThread = new ServerThread(socket);
serverThread.start();
try {
socket = new Socket("localhost", 3251);
} catch (IOException e) {
e.printStackTrace();
}
「localhost」は、クライアントマシンが同じコンピューター上のサーバーを探していることを意味します。これはサーバーのIP、つまり192.168.0.2などである必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加