Account account = new Account("1234",1000); 和直接在Account类中定义一个数,数值为1000有什么区别呢
关于socket在哪里关闭的问题:
根据上一堂课的解释,在main方法应该关闭serverSocket,但不能关闭socket,因为客户端和服务端,是通过socket进行通信的。
因此,我理解在这里,socket方法的关闭,不能在main方法中,而应该在线程中。
但是,我发现无论是客户端还是服务端,对socket进行关闭,都是在发送消息的线程类中,而对于接受消息的线程中,虽然构造方法中有socket,但是在最后没有关闭。
我不懂这里是为什么在发送消息中才关闭线程,而不是在接收消息中关闭?
关于视频6:21处的疑问,
当发送出 Hello Client后,对于服务端来讲,代码会执行下一次while(true)中的
String str = br.readLine();
来等待客户端发来的消息,
那么在此时,对于服务端来讲,代码应该在这边等待,再没有运行到scanner.nextLine()代码时,为什么此时在服务端还可以输入文字“你吃了吗?”,并没报错?
关于流对象的顺序有两个问题:
1.
根据IO章节,先启动的流应该后关闭。
但是这一节中,socket.getOutputStream() 是先启动的,pw是后开的,所以在我的理解,应该先关闭pw,再关闭socket。为什么在这里是先关闭socket,后关闭pw?
在我之前学IO的理解,因为pw中嵌套了socket的字节流,所以关闭应该必须先从最外层(也就是pw)开始关,否则会出现错误。
但是这里似乎么有影响,不知道是不是理解错了?
2.
如果不是 有嵌套关系,而是并行关系,比如这里的scanner和其他流对象,是否关闭顺序就没有先后顺序?
感觉UDP这块有点绕,能不能有更好的理解方式
想问一下为什么输出流pw要有写入磁盘的操作
pw.flush()
而输入流br不需要做写入磁盘的操作flush呢?
pw.println(str); pw.flush();
关于上面两行代码有一个问题:
假设是在服务端中的这两行代码,
在讲解I/O的时候,flush说明的是讲输出的内容从内存写入到磁盘中。
在网络编程应用I/O这部分我就不是很理解,为什么还要有写入磁盘的这一个过程?
客户端和服务端的通信,不就是在内存中进行吗?如果要写入磁盘,又要写在哪里?是类似I/O中所讲的,会在本地磁盘中有一个类似txt文件,来存储写入磁盘的内容吗?谢谢
老师,我想问一下,这里使用if(a instanceof Cat2){ Cat2 c = (Cat2) a ; },就没有报错,为啥省略了括号就不能声明变量
通过socket的顺序,和之前将的TCP的三次握手有什么区别?
这里是从服务器ServerSocket开始创建。
但是在讲TCP建立连接的三次握手时,有说的是从客户端发送TCP保文。
为什么这两个开始是从不同的方向?这两个的作用有什么区别?
老师请问一下。我这里是哪里出错了呢?(编不出20个字)
为什么我的是无限循环 明明i小于20了。还一直执行
想问下在URL中,端口数据是否会体现呢?
我记得的之前讲URL时候说,域名后是端口,然后才是要访问的资源文件,但是当时讲的jd.com的例子,这这里讲的baidu.com的例子,都没有在URL中体现出端口数值。
老师我想问一下老师上课用到的能够查类的各种使用方法的那个工具我们能从哪里下载呀~
请问老师该怎么改,
此行代码 预 打印 false
老师 对于服务器端的这个锁有两个不太明白的地方,第一个是如果一直while(true) 然后“abc”.wait的话, 那接收消息的线程不就是类似于一直被wait么
while (true) { synchronized ("abc") { "abc".wait(); pw.println(ChatRoomServer.msg); pw.flush(); } }
还有也是上面同学问的那个,为什么把string msg = br.readline()放到同步块里之后 就没有消息了呢,这个部分的内存分析能画一下么。想不明白呢。
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637