黑马程序员技术交流社区
标题:
网络编程服务端的问题
[打印本页]
作者:
思考。。。
时间:
2015-7-15 10:09
标题:
网络编程服务端的问题
建立服务端需要监听一个端口
ServerSocket ss = new ServerSocket(9999);
Socket s = ss.accept ();
InputStream in = s.getInputStream();
byte[] buf = new byte[1024];
int num = in.read(buf);
String str = new String(buf,0,num);
System.out.println(s.getInetAddress().toString()+”:”+str);
s.close();
ss.close();
复制代码
请问,为什么上面代码中int num = in.read(buf);不需要用while循环读取信息呢,它那样不就是读一次没读完就不执行了吗?
作者:
YanLH
时间:
2015-7-15 10:31
是的,只读一次。你应该刚开始看TCP传输的视频吧,这是为了讲原理而写的简化代码,并不健全,你把视频看下去就知道了。
作者:
思考。。。
时间:
2015-7-17 10:12
YanLH 发表于 2015-7-15 10:31
是的,只读一次。你应该刚开始看TCP传输的视频吧,这是为了讲原理而写的简化代码,并不健全,你把视频看下 ...
哦哦,那如果给它加上while循环进行读取,循环里同样的String str = new String(buf,0,num);,同样也是可以的是吧,不加while循环的时候,是不是有可能造成数据存储在数组时内存不足,数据存储不全呢?而用while循环就可以解决该问题吧?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2