服務端:
ServerSocket ss=new ServerSocket(40006);
while(true)
{
Socket s=ss.accept();
OutputStream os=s.getOutputStream();
os.write("北京".getBytes());
os.flush();//這裡改成os.close( ),客戶端就能讀到,這是為什麼啊?
}
客戶端:
try {
Socket s=new Socket("192.168.0.110",40006);
InputStream ins=s.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(ins));
String line;
while((line=br.readLine())!=null)
{
System.out.println(line);
}
知道了,BufferedReader是根據“\n”或者“\r”來判斷一行的,而這裡的服務端根本就沒有輸入這兩個符號,也許close()方法會自動給它加上吧。如果服務端手動給它加上這兩個符號中的一個,就可以讀出來了。