ソケットを使ったサーバとクライアントのプログラムについて
はじめまして。
プログラミング初心者です。。
ソケットを使用した
簡単なチャットシステムを作ろうとしたのですが
どうしてもエラーが出てしまいます。。。
サーバ側のプログラムを実行して
その後、
public class ChatClient {
public static void main(String args[]){
BufferedReader br;
BufferedWriter inw;
String logFileName = "chat.log";
Socket s = null ;
InputStream sin;
DataInputStream dis;
OutputStream sout;
DataOutputStream dos;
String str ;
String str1= ("append,");
String str2;
try{
s = new Socket("localhost",5432);
}catch(IOException e){
}
try{
sin = s.getInputStream();
dis = new DataInputStream(sin);
sout = s.getOutputStream();
dos = new DataOutputStream(sout);
br = new BufferedReader(new FileReader(logFileName));
String line;
while((line = br.readLine()) != null){
System.out.println(line );
}
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
while((str=in.readLine())!= null){
if (str.equals("")){
br = new BufferedReader(new FileReader(logFileName));
String line1;
while((line1 = br.readLine()) != null){
System.out.println(line1); }
}else{
dos.writeUTF(str1+str);
dos.flush();
str2 = dis.readUTF();
System.out.println(str2);
}
}
}catch (IOException e){
System.out.println("Error: reading file:");
System.out.println(e);
e.printStackTrace();
System.exit(1);
}
}
}
としてクライアント側のプログラムを実行します。
・標準入力から入力を読み込み"ハンドルネーム「,」メッセージ"の形式で「,」で区切って入力する。
そして何も入力せずに"Enter"だけを入力された場合には、チャットログの更新要求と判断して、別途作成してあるチャットログファイルをサーバ側で読み込みクライアント側に渡す。
という感じで作っているのですが
一回目は上手くいくんです。
二回目、同じようにハンドルネーム「,」メッセージを「,」で
区切って入力してエンターを押すと
java,io,EOFExceptionのエラーが出てしまいます。。。
どうやったら解決できるのでしょうか。。。