1、java通过socket的io流发送byte类型数据,类似0x80之类(最高位为1),因为java中的byte有符号,所以范围为-128~127,如果直接将0x80赋值给byte类型的变量,会直接报错,需要强转,就变成了负的128,最开始我以为这是个大问题,因为不能发送正值过去,但发现只要对方定义的是无符号类型,其实并没有影响。
2、用java写的服务器通过tcp和客户端建立连接时,如果需要一直和客户端连接在一起,可以用一个while循环,但是需要将阻塞设置在while循环外,否则每次循环到这时都会重复的等待客户端连接,处于一直断一直连的过程。
3、io流中,当我们只需要接收范围在100以内的字节数量时,可以先定义一个过度数组长度为100,然后在write()方法中,定义我们所需要的数组长度,例如:write(byte[],start,end)byte[]为将要写入的数据,start为起始位置,end为结束长度,这个长度可以通过read方法中读出的返回值决定,再通过System.arraycopy将过度数组中接受的值赋给我们所需要的数组,这样就将我们不需要的没被赋值的长度剪切掉了。