java socket 缓冲输出数据

本文详细介绍了Java中DataOutputStream的基本用法及如何通过BufferedOutputStream实现缓冲功能,包括消息构建过程中的关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java 的 DataOutputStream 每次write的时候,就把数据发送出去了,如果想要实现缓冲功能,可以用 BufferedOutputStream来实现,代码片段如下:

BufferedOutputStream bufferedOutputStream;
	bufferedOutputStream = new BufferedOutputStream(socket.getOutputStream());
	
	//
	
	private void buildSendingMsg(byte[] msg, int protocol) {

		int msgSize = msg.length; // (9)'s length
		int bufferlen = msgSize + 86; // (1) ~ (9)total length
		int len = msgSize + 82; // (3) ~ (9) total length
		
		try {
			bufferedOutputStream.write(StreamTool.shortToByte((short)1));
			bufferedOutputStream.write(StreamTool.shortToByte((short)len));
			
			byte uuid[] = (ChatRoomData.uuid.toString()).getBytes("UTF-8");
			
			bufferedOutputStream.write(uuid);
			
			int leftSize = 64 -  uuid.length;
			
			for(int i =0 ; i< leftSize; i++)
			{
				bufferedOutputStream.write(0);
			}
			
			bufferedOutputStream.write(StreamTool.intToByte(4));
			bufferedOutputStream.write(StreamTool.intToByte(5));
			bufferedOutputStream.write(StreamTool.shortToByte((short)6));
			
			bufferedOutputStream.write(StreamTool.intToByte(protocol));
			bufferedOutputStream.write(StreamTool.intToByte(msgSize));
			
			bufferedOutputStream.write(msg);
			
			bufferedOutputStream.flush();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值