[英]Simple Client-Server: flushing not working before or after writing in the buffer
我將字符串發送到服務器,但是服務器在發送字符串之前得到了奇怪的字符,在發送之前,發送之后以及初始化outputstream變量后我嘗試刷新,但是結果是相同的。 ()並對其進行搜索,但仍然沒有找到如何解決我的問題的方法,也許它很簡單,但我無法理解。
請幫我!
客戶端
InetAddress endereco = InetAddress.getByName(null);
socket= new Socket(endereco, SServer.PORTO);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(new ObjectOutputStream(socket.getOutputStream()),true);
while(true){
System.out.println("Write your Thoughs.. ");
Scanner scanner = new Scanner(System.in);
String Msg = scanner.nextLine();
System.out.println("I Said: ");
System.out.println(Msg);
out.println(Msg);
out.flush();
String s = in.readLine();
System.out.println("Echo: "+s);
}
//服務端
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
out.flush();
}
private void serve() throws IOException {
while(true){
String s = in.readLine();
System.out.println("Server Received: " + s);
if(s.equals("END"))
break;
System.out.println("Server Send: " + s);
out.println(s);
}
我認為正在發生的事情是,在編寫字符串時,您正在通過ObjectOutputStream
推送它們,而ObjectOutputStream
試圖對其進行序列化(我認為)。 您使事情變得不必要了。 嘗試使用
out = new PrintWriter(socket.getOutputStream());
那將只是直接通過該行轉儲文本,而沒有所有其他內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.