Server端socket.getOutputStream()产生outputStream,
    PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true)  //true表示flush
    out.println("this is from server");
client端 
    BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream());
    while( (str = br.readLine()) != null){
        System.out.println(str);
    }

解决方案 »

  1.   

    通话器服务器: 
    import java.net.*; 
    import java.io.*; 
    import java.lang.*; public class myserver{ 
    public static void main(String args[]){ 
    ServerSocket server; 
    Socket socket; 
    String s; 
    InputStream Is; 
    OutputStream Os; 
    DataInputStream DIS; 
    PrintStream PS; try{ 
    //在端口4321注册服务 
    server=new ServerSocket(4321); 
    socket=server.accept();   //监听窗口,等待连接 System.out.println("server ok"); 
    System.out.println("************************************************"); 
    System.out.println(""); //获得对应Socket的输入/输出流 
    Is=socket.getInputStream(); 
    Os=socket.getOutputStream(); 
    //建立数据流 
    DIS=new DataInputStream(Is); 
    PS=new PrintStream(Os); 
    DataInputStream in=new DataInputStream(System.in); 
    while(true){ 
    System.out.println(""); 
    System.out.println("please wait client's message..."); 
    System.out.println(""); 
    s=DIS.readLine(); //读入从client传来的字符串 
    System.out.println("client said:"+s); //打印字符串 
    if(s.trim().equals("BYE"))break; //如果是"BYE",就退出 
    System.out.print("you say:"); 
    s=in.readLine(); //读取用户输入的字符串 
    PS.println(s); //将读取得字符串传给client 
    if(s.trim().equals("BYE"))break; //如果是"BYE",就退出 } //关闭连接 
    DIS.close(); //关闭数据输入流 
    PS.close(); //关闭数据输出流 
    Is.close(); //关闭输入流 
    Os.close(); //关闭输出流 
    socket.close(); //关闭sockey 

    catch(Exception e){ 
    System.out.println("Error:"+e); 



    通话器客户端 
    import java.net.*; 
    import java.io.*; 
    import java.lang.*; public class myclient{ 
    public static void main(String args[]){ 
    if (args.length<1){ //判断命令加参数没有 
    System.out.println("you forget the name of the server!"); 
    System.out.println("see also: myclient yxf"); 
    System.exit(1); //如果没加参数就退出 
    } Socket socket; 
    String s="[email protected]"; 
    String len; 
    InputStream Is; 
    OutputStream Os; 
    DataInputStream DIS; 
    PrintStream PS; 
    try{ 
    //向主机名为args[0]的服务器申请连接 
    //注意端口号要与服务器保持一致:4321 
    socket=new Socket(args[0],4321); System.out.println("client ok"); 
    System.out.println("************************************************"); 
    System.out.println(""); //获得对应socket的输入/输出流 
    Is=socket.getInputStream(); 
    Os=socket.getOutputStream(); 
    //建立数据流 
    DIS=new DataInputStream(Is); 
    PS=new PrintStream(Os); 
    DataInputStream in=new DataInputStream(System.in); while(true){ 
    System.out.print("you say:"); 
    s=in.readLine(); //读取用户输入的字符串 
    PS.println(s); //将读取得字符串传给server 
    if(s.trim().equals("BYE"))break; //如果是"BYE",就退出 
    else 

    System.out.println(""); 
    System.out.println("please wait server's message..."); 
    System.out.println(""); 

    s=DIS.readLine(); //从服务器获得字符串 
    System.out.println("server said:"+s); //打印字符串 
    if(s.trim().equals("BYE"))break; //如果是"BYE",就退出 } //关闭连接 
    DIS.close(); //关闭数据输入流 
    PS.close(); //关闭数据输出流 
    Is.close(); //关闭输入流 
    Os.close(); //关闭输出流 
    socket.close(); //关闭socket 

    catch(Exception e){ 
    System.out.println("Error:"+e);