该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在Client端的程序代码那os.flush(); 为什么加了os.flush(); 程序就可以正常运行,不加就不行呢?flush方法的作用是什么
Server端程序
import java.io.*;
import java.net.*;
import java.applet.Applet;
public class talkserver
{
public static void main(String args[])
{
try
{
ServerSocket server = null;
try
{
server = new ServerSocket(4700);
}catch(Exception e)
{
System.out.println("can not listen to:" + e);
}
Socket socket = null;
try
{
socket = server.accept();
}catch(Exception e)
{
System.out.println("Error:" + e);
}
String line;
BufferedReader is = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
PrintWriter os = new PrintWriter(socket.getOutputStream());
BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Client:" + is.readLine());
line = sin.readLine();
while (!line.equals("bye"))
{
os.println(line);
os.flush();
System.out.println("Server:" + line);
System.out.println("Client:" + is.readLine());
line = sin.readLine();
}
is.close();
os.close();
socket.close();
server.close();
}catch(Exception e)
{
System.out.println("Error" + e);
}
}
}
Client端的程序
import java.io.*;
import java.net.*;
public class talkclient
{
public static void main(String args[])
{
try
{
Socket socket = new Socket("127.0.0.1",4700);
BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
PrintWriter os = new PrintWriter(socket.getOutputStream());
BufferedReader is = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
String readline;
readline = sin.readLine();
while (!readline.equals("bye"))
{
os.println(readline);
os.flush(); //为什么不加就运行不正常 不懂的地方
System.out.println("Client:" + readline);
System.out.println("Server:" + is.readLine());
readline = sin.readLine();
}
os.close();
is.close();
socket.close();
}catch(Exception e)
{
System.out.println("Error" + e);
}
}
}