我目前正在嘗試編寫Java應用程序來檢查遊戲Archeage的服務器是否在線。我已經得到了以下數據: 上古世紀EU服務器IP:193.105.173.130 使用的端口:80,1237,1239,1250「Ping」Java中的服務器
我設法檢查使用被稱爲Tcping工具的端口,但我想編寫一個Java應用程序,它將具有一些GUI,並在建立連接時播放聲音或執行其他操作。
目前,我堅持用下面的代碼(這是因某些原因無法工作):
package Code;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import javax.swing.JOptionPane;
public class SocketCheck {
public static void main(String[] args) throws IOException {
String serverAddress = JOptionPane.showInputDialog(
"Enter IP Address of a machine that is\n" +
"running the date service on port 80:");
Socket s = new Socket(serverAddress, 80);
BufferedReader input =
new BufferedReader(new InputStreamReader(s.getInputStream()));
String answer = input.readLine();
JOptionPane.showMessageDialog(null, answer);
s.close();
System.exit(0);
}
}
錯誤消息我得到:
Exception in thread "main" java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at Code.SocketCheck.main(SocketCheck.java:29)
我在做什麼錯?
很抱歉,我無法訪問服務器代碼。這不是我的遊戲。我甚至不需要收到某種預定義的消息,我只想檢查服務器是否啓動並運行。 – Justin
@vishalgajera垃圾。除了端口以外,您不需要知道任何關於服務器的信息,以查看它是否在運行。 – EJP
@vishalgajera這是一個奇怪的方式把它。 *要麼*我是正確的*或*我錯了:沒有'可能'關於它;這不是一個不令我滿意的問題:這是一個事實問題,很容易通過分析或實驗來確定。 – EJP