我最近一直在研究websockets.创建了我自己的服务器,并有一个公共演示.我没有这样详细的经验或知识重新:http.(虽然因为websocket请求是升级的http请求,所以我有一些.)
在我的结尾,服务器报告每个命中的细节.其中包括一堆http keep-alive请求.我的服务器不处理它们,因为它们不是websocket请求.但它让我的好奇心得到了提升.
websockets的重要一点是连接保持活跃.然后你可以在两个方向传递消息(同时甚至).我已经读过,Stay-Alive HTTP连接是一个相对较新的开发(我不知道人们有多少年的时间,只是它只包含在最新的标准中 - 1.1 - 现在真的老了吗?)
我想我可以假设两者之间存在行为差异,或者没有理由选择websocket标准?有什么不同?
线程终止并创建新线程时,线程号(id)递增.Java 7是喜欢增加数字还是我做错了什么?
我正在使用Java 7构建一个服务应用程序,它在建立连接时创建一个新线程,然后为连接提供服务.当服务收到关闭消息时,它会退出循环并允许完成线程中的代码.因此,据我所知,线程的生命被终止,就像任何实例对象一样.Java 7不使用Thread.stop()或Thread.destroy()或任何此类东西.(我认为不是自v5以来.)
我有一个带有"Open Connection","Close Connection"和"Send Message"按钮的界面以及线程中相应的println语句,所以我可以看到发生了什么.我打印出来的变量之一是Thread.currentThread().当我打开第一个连接时,currentThread()是Thread [Thread-0,5,main].我关闭连接并从循环中获取消息,指示Thread [Thread-0,5,main]正在终止.
好的,现在又回到原点了,对吗?没有线程.
我再次点击连接,然后输入Thread [Thread-1,5,main].看到了吗?"Thread-1"而不是"Thread-0".每次我这样做,数字都会增加1.
(侧面问题,如果不是太麻烦.什么是"5,主要"是什么意思?)
评论re:thread stop:为什么Thread.stop,Thread.suspend和Thread.resume已弃用?.
如何在Java中生成16位无符号整数和64位无符号整数?这个问题与实施标准有关.我无法改变规格.
规范的其他可能相关的部分.这个问题与:
应用程序上下文:数字(以任一形式)表示要发送的数据的长度.长度可以大或小.我第一次发现要发送的消息长度很长.
所以我开始: long length = getLength();
然后,我需要将长变量"length"转换为上述两个中的任何一个,具体取决于它的大小.最后,我很确定.getBytes()在发送长度时我需要做一个.接收者将如上所述进行解释.
java network-protocols type-conversion primitive-types java-7