0

我正在向服务器发送字节数组,服务器应该接收我发送的数据。但是服务器需要很长时间才能接收到数据。服务器正在输入流中等待。

如果我通过转换为字节来发送字符串数据,那么服务器将接收。我不知道发生了什么。请帮我。

客户:

void Send(byte []arr)
{   
    //Other code

    String s=new String(arr);
    byte []msgByte=s.getBytes();
    try
    {
        outStream.write(msgByte);
    }
    catch(Exception e)
    {}

     //Other Code
}

服务器:

InputStream inStream1=connection.openInputStream();
BufferedReader bReader1=new BufferedReader(new InputStreamReader(inStream1));
String lineRead=bReader1.readLine();
System.out.println(lineRead);
inStream1.close();
4

2 回答 2

0

尝试使用关闭 outStreamoutStream.close()

于 2013-10-17T06:20:20.160 回答
0

您需要在消息末尾添加一个 '\n' (换行符),因为您希望在服务器上读取一行,并且您需要在写入消息后刷新流,因为默认情况下系统不是自动冲洗它,也冲洗取决于使用的类型OutputStream

void Send(byte[] arr) {
    // Other code

    String s = new String(arr) + "\n"; // appending '\n'
    byte[] msgByte = s.getBytes();
    try {
        outStream.write(msgByte);
    } catch (Exception e) {
    }

    outStream.flush(); //flushing the stream
    // Other Code
}    
于 2013-10-17T06:18:51.283 回答