从同一TCP连接发送ByteArrays和Bytes

时间:2016-10-26 08:54:43

标签: java sockets

在我的应用程序中,我创建了一个套接字来在客户端和服务器之间进行通信。传递的消息有两种类型,它们在数据长度方面有所不同。一种消息类型只有一个字节,而另一种消息具有可变长度。我试图使用单个TCP连接来处理这两种情况,但到目前为止都失败了。有人可以告诉我这是什么理想的方法。使用具有不同端口号的两个连接是最好的方法吗? 请注意,由于外部约束,我的项目中无法使用socket.io。

这里的阅读代码我使用:

        Socket socket = new Socket( dstAddress, dstPort );
        InputStream inputStream = socket.getInputStream();
        try( ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream( 1024 ) )
        {
            byte[] buffer = new byte[1024];
            int bytesRead;
            while( ( bytesRead = inputStream.read( buffer ) ) != -1 )
            {
                byteArrayOutputStream.write( buffer, 0, bytesRead );
            }
        }
        catch( Exception e )
        {
            e.printStackTrace();
        }

由于

1 个答案:

答案 0 :(得分:1)

你需要设计自己的通信协议,例如http,但当然要简单得多。并在两侧实现解码器/编码器