黑马程序员技术交流社区

标题: 看老毕23天内容一个小问题,求大神指教! [打印本页]

作者: ☆枫の云    时间: 2014-6-10 11:41
标题: 看老毕23天内容一个小问题,求大神指教!
本帖最后由 ☆枫の云 于 2014-6-12 10:27 编辑

今天看了一下老毕第23天-14-网络编程(TCP复制文件)的,他最后讲到定义时间戳让客户端和服务端结束的例子,但是没有讲完,求教那个定义时间戳服务器端结束的判断是什么样的啊?

客户端里在Socket输出流开始之前读了一个currentTimeMillis,然后用DataOutputStream发出去了,然后Socket输出流结束后又读了一个currentTimeMillis,然后也发出去了。

在服务器端,用DataInputStream读到了,然后说可以在下面Socket读取流里判断一下,服务器端的Socket读取流就能关闭了,应该怎么判断呢?求指教!

作者: zly1992008    时间: 2014-6-10 13:58
23天。。老毕的不是看到21天就可以面试了么?
作者: 铁血丹心    时间: 2014-6-10 14:43
我是这样理解的:
第二次发送的时间就是第一次发送的时间。服务端收到第一次发送的时间,记录下来,作为判断依据,等到客户端再次发送这个时间过来时,就关闭。为什么用时间戳,是因为时间不容易重复,是唯一的。
比如,我先发送“over”给服务端,服务端收到,把over作为结束标记,等我在客户端再输入“over”时,关闭服务
作者: ☆枫の云    时间: 2014-6-10 18:12
铁血丹心 发表于 2014-6-10 14:43
我是这样理解的:
第二次发送的时间就是第一次发送的时间。服务端收到第一次发送的时间,记录下来,作为判 ...

感觉有道理,不过发送的两个时间应该不是同一个时间,因为之前学currentTimeMillis时,老毕用这个测试过一段程序运行的时间,就是在一段循环代码前读了一下currentTimeMillis,然后循环结束又读了一次,然后两个值相减得出了循环代码运行的时间,所以你这种理解应该还是有问题。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2