だから私はちょうどいくつかのクライアントサーバーのものをテストしています(私はより大きなプロジェクトでそれに取り組んでいましたが、エラーを投げ続けたので、私はそれを正しく行っていることを確認することにしました.私はそうではなかったことがわかりました)これには ObjectOutput が含まれますおよび入力ストリーム。クライアントとサーバーをlocalhostで実行すると完全に機能しますが、サーバーをLinuxサーバーで実行し、クライアントをコンピューターで実行すると、オブジェクトがフェッチされる行に到達するまでに接続がリセットされます。コードは次のとおりです。
クライアント:
public static void main(String[] args){
String[] stuff = {"test", "testing", "tester"};
Socket s = null;
ObjectOutputStream oos = null;
try {
s = new Socket("my.server.website", 60232);
oos = new ObjectOutputStream(s.getOutputStream());
oos.writeObject(stuff);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
s.close();
oos.close();
} catch (IOException e) {}
}
}
サーバ:
public static void main(String[] args){
ServerSocket ss = null;
Socket s = null;
ObjectInputStream ois = null;
try {
ss = new ServerSocket(60232);
s = ss.accept();
System.out.println("Socket Accepted");
ois = new ObjectInputStream(s.getInputStream());
Object object = ois.readObject();
System.out.println("Object received");
if (object instanceof String[]){
String[] components = (String[]) object;
for (String string : components){
System.out.println(string);
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally{
try {
ss.close();
s.close();
ois.close();
} catch (IOException e) {}
}
}