java - 如何确保我的服务器读取客户端写入的内容?

标签 java sockets objectoutputstream

我正在从套接字客户端写入字节数组,如下所示:

byte[] arr = { 49, 49, 49, 49, 49};

InetAddress address = InetAddress.getByName(host);
connection = new Socket(address, port);
out = new ObjectOutputStream(connection.getOutputStream());
out.flush();

在接收端,在服务器上我有:

byte[] msgType = new byte[5];
in = new BufferedInputStream(connection.getInputStream());
int bytesRead = in.read(msgType, 0, 5);

System.out.println("msg rcvd: " + msgType.toString());

在输出中我得到奇怪的字符串:

server: waiting for connection
server: connection received from localhost
server: Connection Successful
bytes read: 5
msg rcvd: ��w

如何确保我获得与从客户端发送的字节相同的字节?

最佳答案

我不确定要打印的具体内容,但我可以告诉您 msgType.toString() 不会打印字节数组的内容。

Here是我找到的一个方法的链接,该方法将以更有意义的方式打印出字节数组。

关于java - 如何确保我的服务器读取客户端写入的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5602091/

相关文章:

java - 连接阶段后 "java.io.IOException: Connection timed out"的含义

linux - 连接被peer重置,linux内核保持空闲连接多久

sockets - 无法找到套接字传输 "ssl"

java - 异常 StreamCorruptedException : invalid type code: AC

java - 如何将两个 AFP 文件连接在一起

java - 如何防止JSP中的SQL注入(inject)?

java - Java:处理日期

c - 套接字C客户端未收到字符串

java - append 到 ObjectOutputStream

java - 使用ObjectOutputStream删除特定数据