我很抱歉,但我不會說英語非常好.. :)Java Socket技術異常:java.net.SocketTimeoutException:接受超時
我一定要在遊戲創建一個IA,我必須給它在5小時給我的老師。
要做到這一點,我必須我連接到服務器,但我不能..
我會解釋。我的老師拿我的java項目並執行Launching.class。 在文件Launching.java和Connection.java中,我嘗試在服務器上連接我。
當我theacher執行文件,參數爲:服務器名稱,端口號的地圖(在這裏並不重要)
我創建了一個本地服務器,一切都很好,但是當我把我的文件時的服務器和尺寸上我的老師測試它,他給我發現有一個錯誤:
Serveur:accept()du serveur pour le second joueur(n°1)impossible; java.net.SocketTimeoutException:接受超時
我的代碼很簡單,我想,所以我尋求幫助。
要連接我,我用兩個文件 「Launching.jaa」 和 「Connection.java」 下面:
Launching.java
public class Launching
{
private String addressIP;
private int port;
public Launching()
{
this.addressIP = "";
this.port = 0;
}
public void setAddressIP(String addressIP)
{
this.addressIP = addressIP;
}
public String getAddressIP()
{
return this.addressIP;
}
public void setPort(int port)
{
this.port = port;
}
public int getPort()
{
return this.port;
}
public static void main(String[] parameters) throws Exception
{
Launching parametersLaunching = new Launching();
parametersLaunching.addressIP = parameters[0];
parametersLaunching.port = Integer.parseInt(parameters[1]);
try
{
Connection connection = new Connection(parametersLaunching.addressIP, parametersLaunching.port);
connection.setInputStream(connection.getSocket());
connection.setOutputStream(connection.getSocket());
if(connection.getInputStream() != null && connection.getOutputStream() != null)
{
Game game = new Game(connection.getInputStream(), connection.getOutputStream(), Integer.parseInt(parameters[2]));
game.start();
}
if(connection.getInputStream() != null)
{
connection.getInputStream().close();
}
if(connection.getOutputStream() != null)
{
connection.getOutputStream().close();
}
if(connection.getSocket() != null)
{
connection.getSocket().close();
}
connection.getSocket().close();
}
catch(UnknownHostException exception)
{
exception.printStackTrace();
}
catch(IOException exception)
{
exception.printStackTrace();
}
}
}
Connection.java
package network;
import java.io.*;
import java.net.*;
public class Connection
{
private Socket socket;
private InputStream inputStream;
private OutputStream outputStream;
public Connection(String adressIP, int port) throws Exception
{
InetAddress adress = InetAddress.getByName("adressIP");
this.socket = new Socket(adress, port);
this.inputStream = null;
this.outputStream = null;
}
public InputStream getInputStream()
{
return this.inputStream;
}
public OutputStream getOutputStream()
{
return this.outputStream;
}
public Socket getSocket()
{
return this.socket;
}
public void setInputStream(Socket socket) throws IOException
{
this.inputStream = socket.getInputStream();
}
public void setOutputStream(Socket socket) throws IOException
{
this.outputStream = socket.getOutputStream();
}
}
那麼你有想法來幫助我嗎?我想保持這種架構..
坦克你非常需要你的幫助! :)
「我創建了本地服務器」,但您還沒有發佈它。 – EJP
因爲它很糟糕..偉大的服務器是我老師的服務器,但我們不能擁有代碼。 我想我找到了我的錯誤.. 在Connection.java中:InetAddress adress = InetAddress.getByName(「adressIP」); 我認爲它是:InetAddress地址= InetAddress.getByName(adressIP); 我會再次測試,我會說如果一切都很好;) –