初学Java 以及 Socket
写了一下,发现下面这个问题, :Socket已经链接成功, 关键在发送的数据上面:发送:接收后
求助, 怎么才能保证发送的和接收的是一样的呢?

解决方案 »

  1.   

    你输入的时候你定义了大小就是1024,但是你输入的字符不到1024实际占用了1024,你输入没必要定义大小,你可以把你输入的值给你声明变量赋值byte [] b=sendStr.getBytes();
      

  2.   

        private Socket socket = null;    private BufferedReader br = null;    private PrintWriter pw = null;    public ServeOneJabbr(Socket s)
        {
            socket = s;
            try
            {
                br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                pw =
                    new PrintWriter(
                        new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
                //按行读
        String str;
        //循环也行
        while(true){
                    str = br.readLine();
                    if (str.equals("END"))
                    {
                        br.close();
                        pw.close();
                        socket.close();
                        break;
                    }
                    System.out.println("Client Socket Message:" + str);
                    pw.println("Message Received");
                    pw.flush();        }
            catch (Exception e)
            {
                e.printStackTrace();
            }
        }