私は、クライアントから送信されたデータを保存するファイルをサーバーに保持させたい、このクライアントサーバープログラミングにこだわっています。コードは次のとおりです。
クライアント側:
public class ClientSide {
public static void main(String[] argv) throws Exception {
String sentence;
BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in));
Socket clientSocket = new Socket("localhost", 6789);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
sentence = inFromUser.readLine();
outToServer.writeBytes(sentence + '\n');
clientSocket.close();
}
}
サーバ側:
public class ServerSide {
public static void main(String[] args) throws IOException {
File file=new File("s1.txt");
ServerSocket servsock = new ServerSocket(6789);
Socket sock = servsock.accept();
byte[] mybytearray = new byte[1024];
InputStream is = sock.getInputStream();
FileOutputStream fos = new FileOutputStream(file,true);
BufferedOutputStream bos = new BufferedOutputStream(fos);
int bytesRead = is.read(mybytearray, 0, mybytearray.length);
bos.write(mybytearray, 0, bytesRead);
bos.close();
sock.close();
BufferedReader write=new BufferedReader(new FileReader(file));
String line;
while((line=write.readLine())!=null) {
System.out.println(line);
}
}
}
ここで、ユーザーがサーバーにデータを送信すると、たとえば「Vinayak」はサーバーに送信されるデータであり、最初の文字、つまり「V」のみがファイルに書き込まれます。コードで何かを見逃しているに違いなく、それを見つけることができません。また、ここで同様の質問をしましたが、望ましい結果が得られませんでした