私は単純なクライアント/サーバープログラムに取り組んでいますが、今のところ、接続時にクライアントからサーバーにオブジェクトを送信し、サーバーから応答を含むオブジェクトを送信するだけです。
私のオブジェクトは、ユーザー名とパスワードを送信することになっています。はい、TCP 接続を認証する方法が他にもあることは知っていますが、これは Java を使用したネットワークに慣れるためのテストです。
私のオブジェクトは次のように書かれています:
import java.io.Serializable;
public class AuthAccount implements Serializable{
private static final long serialVersionUID = -8918729105550799244L;
private String username;
private String password;
AuthAccount(String user, String pass){
username = user;
password = pass;
}
String username(){
return username;
}
String password(){
return password;
}
}
ソケット接続は成功しますが、次の行で失敗します ( oos
is ObjectOutputStream
):
System.out.print("Sending login object to server...");
oos.writeObject(new AuthAccount("user", "password"));
System.out.println("Done!");
エラーが表示され続けます:
java.io.NotSerializableException: AuthAccount
char[] username = new char[30];
固定サイズのオブジェクトを使用するために、AuthAccount テスト クラスを使用してみました。私はどちらかというと C++ 派ですが、このプロジェクトでは Java が理にかなっています。