刚学java不久,很新,早上刚写了一个聊天程序,server端和client端都能运行,但是client端输入文字server端怎么也收不到,请求大师们给小弟一点帮助。
Server端:
import java.io.*; 
import java.net.*;
public class TestSockServer {
  public static void main(String[] args) {
    InputStream in = null; 
    OutputStream out = null;
    try {
      ServerSocket ss = new ServerSocket(4888);
      Socket socket = ss.accept(); 
      in = socket.getInputStream(); 
      out = socket.getOutputStream();
      DataOutputStream dos = new DataOutputStream(out);
      dos.writeUTF("a client is connect: 输入一行文字");
      DataInputStream dis = new DataInputStream(in);
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      System.out.println(dis.readUTF());
      String line = null; 
      line = br.readLine();
      while(!line.equalsIgnoreCase("bye")) {
            dos.writeUTF(line);
            dos.flush();
            System.out.println(dis.readUTF());
            line = br.readLine();  
    }
      
      dis.close();
      dos.close();
      br.close();
      socket.close();
    } catch (IOException e) {e.printStackTrace();}
  }
}Client端:
import java.net.*;
import java.io.*;
public class TestSockClient {
  public static void main(String[] args) {
    InputStream is = null; OutputStream os = null;
    try {
      Socket socket = new Socket("127.0.0.1",4888);
      is = socket.getInputStream();
      os = socket.getOutputStream();
      DataInputStream dis = new DataInputStream(is);
      System.out.println(dis.readUTF());
      DataOutputStream dos = new DataOutputStream(os);
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      String line = br.readLine();
      while(!line.equalsIgnoreCase("bye"));
      {
            dos.writeUTF(line);
            dos.flush();
            System.out.println(dis.readUTF());
            line = br.readLine();        
      }
            br.close();
            dis.close();
            dos.close();
            socket.close();
       
    } catch (UnknownHostException e) {
       e.printStackTrace();
    } catch (IOException e) {e.printStackTrace();}
  }
}小弟刚注册 分少, 只能给这么多,多多包涵

解决方案 »

  1.   

    严寒饥渴,赶着吃午饭。。这里有个我的例子,楼主看一眼..package com.serial.net;import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;import com.serial.bean.UserBean;public class Server {
    public static void main(String[] args) throws ClassNotFoundException {
    try {
    // 指定端口
    ServerSocket server = new ServerSocket(8888);
    System.out.println("服务端打开,等待连接...."); Socket socket = server.accept();
    System.out.println(socket.getPort()); ObjectInputStream in = new ObjectInputStream(socket
    .getInputStream());
    UserBean user;
    user = (UserBean) in.readObject();
    File file = new File("/root/server.bat");
    if (!file.exists()) {
    file.createNewFile();
    } ObjectOutputStream out = new ObjectOutputStream(
    new FileOutputStream(file));
    out.writeObject(user);
    } catch (IOException e) {
    e.printStackTrace();
    } }
    }
    clientpackage com.serial.net;import java.io.IOException;
    import java.io.ObjectOutputStream;
    import java.net.Socket;
    import java.net.UnknownHostException;import com.serial.bean.UserBean;public class Client {
    public static void main(String[] args) {
    try {
    Socket scoket = new Socket("127.0.0.1", 8888);
    UserBean user = new UserBean(1, "djw", "chenzhou", "12345678910");
    ObjectOutputStream out = new ObjectOutputStream(scoket
    .getOutputStream());
    out.writeObject(user);
    out.close();
    } catch (UnknownHostException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }
      

  2.   

    谢谢楼上,但是我还没学bean,能不能从我那些代码发现什么问题啊 我搞了两三个小时 ,就是搞不出来,