socket 理解

1个字节等于2个16进制,所以java io中的字节流中读取一个字节就是读了2个16进制的数据

在项目中我们读取文件的时候经常是这样的:

byte [] bytes = new byte[1024];
			
			int length = 0;
			
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			
			while((length = is.read(bytes))!=-1)
			{
				baos.write(bytes,0,length);
			}
			
这个代码的意思是 首先申明一个1024字节大小的byte数组 也就是1K的数组,然后
is.read(bytes))
io流往这1K大小的数组里面放东西 如果是
is.read()
则是一个一个字节读取的,读出来就是2个16进制的数


2:socket 编程简单讲解

主要是说io的阻塞式,所谓阻塞就是说io在read的时候一直阻塞在那,因为客户端一直没有关闭,所以服务端一直在那阻塞着,如果客户端调用了关闭流的方法则会read方法读取到-1 则表示结束,如果read方法阻塞,然后客户端突然就断链了 ,则会抛出异常。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值