A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 ☆枫の云 于 2014-6-12 10:27 编辑

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

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

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

评分

参与人数 1技术分 +1 收起 理由
轻语。 + 1 很给力!

查看全部评分

3 个回复

倒序浏览
23天。。老毕的不是看到21天就可以面试了么?
回复 使用道具 举报
我是这样理解的:
第二次发送的时间就是第一次发送的时间。服务端收到第一次发送的时间,记录下来,作为判断依据,等到客户端再次发送这个时间过来时,就关闭。为什么用时间戳,是因为时间不容易重复,是唯一的。
比如,我先发送“over”给服务端,服务端收到,把over作为结束标记,等我在客户端再输入“over”时,关闭服务

评分

参与人数 1技术分 +1 收起 理由
轻语。 + 1

查看全部评分

回复 使用道具 举报
铁血丹心 发表于 2014-6-10 14:43
我是这样理解的:
第二次发送的时间就是第一次发送的时间。服务端收到第一次发送的时间,记录下来,作为判 ...

感觉有道理,不过发送的两个时间应该不是同一个时间,因为之前学currentTimeMillis时,老毕用这个测试过一段程序运行的时间,就是在一段循环代码前读了一下currentTimeMillis,然后循环结束又读了一次,然后两个值相减得出了循环代码运行的时间,所以你这种理解应该还是有问题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马