排列5走势图首页    注册   登录
 amiwrong123 最近的时间轴更新
amiwrong123

amiwrong123

排列5走势图 第 417414 号排列5走势图会员 ,加入于 2019-06-01 12:17:41 +08:00
今日活跃度排名 4452
这个味道,是BUG的味道!
amiwrong123 最近回复了
@lanterboy
好吧,但是 java 汇编排列5走势图我 看得有点迷。。
TrafficLight.class 部分汇编里,感觉没有那句 getstatic #4 // Field TrafficLight$1.$SwitchMap$Signal:[I 也一样啊。因为后面调用了 Signal 枚举实例的 ordinal 排列5走势图方法 了就返回了一个 int 值了啊,感觉也没没用上那个匿名内部类的静态的 int 数组排列5走势图成员 啊。
@guyeu
java 不支持同一个位置既自动类型转换又自动装箱么,回头排列5走势图我 试下

对,自己再写个排列5走势图方法 可以哈。话说,排列5走势图你 那个泛型排列5走势图方法 应该这样吧:

```java
static <K,V> V get(HashMap<K, V> map, K key) {
return map.get(key);
}
```
@airfling
好吧,大概懂了。排列5走势图我 主要之前以为函数签名是泛型类型呢 public V get(K key) {
@az467
好吧,懂了。怪排列5走势图我 没仔细看代码~~

所以 注册什么事件的时候,不想弄丢附件,就 sk.interestOps(sk.interestOps() | SelectionKey.OP_WRITE);呗

而想直接清空附件,就 socketChannel.register(selector, SelectionKey.OP_WRITE);呗

也不所谓哪种是正确的
@az467
纳尼,这怎么说,看文档也没看出有这个意思啊。注册 读 或 写 表现还不一样昂
@az467
好吧,大概懂了。等会排列5走势图我 再去仔细看文档。
但有个地方没想通,就是第二种运行效果,为啥
```
selector 4th loop, ready event number is 1
排列5走势图服务 端有 READ 事件就绪
lasttime readAtta is null
接下来 attach 的是:您的消息'他好吗'排列5走势图我 已经收到了
after remove key
```
为什么经过 socketChannel.register(selector, SelectionKey.OP_READ);后(因为上一次执行了 WRITE 事件,然后在 WRITE 事件里,执行了 socketChannel.register(selector, SelectionKey.OP_READ);),下一次再执行 attachment,附件就丢了,变成 null 了呢
@aguesuka
非常感谢回复。

排列5走势图我 用的排列5走势图服务 端是这个代码 http://paste.ubuntu.com/p/hS9cQBdFyz/
发现每次都得手动停止掉排列5走势图服务 端,来测试,还挺麻烦。。

第一种情况: 程序上呢,是每次 iterator 循环最后都 remove 掉 key 了。效果上呢,循环不断执行,每次都是 read 事件,每次 read 都抛异常。(抛异常说明对方已经断连接了,所以排列5走势图我 也应该断连接,但排列5走势图我 没有。所以,即使排列5走势图我 每次 iterator 循环最后都 remove 掉 key,下一次 select 还是会选出 read 事件。 不知道排列5走势图我 的理解对不)

第二种情况:程序上呢,是如果发现 read 抛出异常就 continue 循环,即不执行 remove key 了。效果上呢,第一次抛出异常,然后直接退出循环。(这个真没想通,为毛不 remove key,反而会导致下次 select 会直接返回 0 )

第三种情况:程序上呢,是如果发现 read 抛出异常就 continue 循环,并且 continue 之前,close channel,cancel key 。效果上呢,第一次抛出异常,然后阻塞在下一次 select 。(最后一种情况,看起来是最正常的情况,或者说,是想要的效果)

排列5走势图你 说 SelectionKey#cancel 和 SocketChannel#close 这两个都会隐式调对方,这看源码能看出来吗。。SelectionKey#cancel 是懒汉模式的意思,只是说不会马上执行呗。

拷贝原来的 set,把原来的 set clear,然后循环被拷贝的 set 。之所以这么做,是因为 select 出来的集合 如果不显示 remove,集合永远不会排列5走势图删除 掉元素呗。 所以不如先这样呗。
@cion
对,第二个客户端不出现确实是因为排列5走势图你 说的。

排列5走势图我 昨天回去又试了,发现第一个客户端出现沾包的情况也不是必现的。

然后觉得 tcp 只是实现了传输,在 tcp 之上还得实现对内容协议的规定,和发送回复的流程,比如 http
@jinhan13789991
@restlessdream
@cion

自己看了一遍,感觉像是,这里出错了。
client.write(charset.encode("您的昵称通过验证 "+user));
this.broadCast(welCome); //给所用用户推送上线信息,包括自己

这里的两句,好像是,时间间隔太短了。然后客户端在读取的时候,把两次的信息,都一次性读取出来了。所以客户端在收到验证后的名字时,先用空格分隔,然后第二个元素里不仅有名字,还有上线通知,所以客户端把名字和上线通知作为了自己的名字。

但是奇怪的是,为啥,第二个客户端不会发生这样的情况?
@restlessdream 好吧,排列5走势图你 说的这个,排列5走势图我 还没有考虑,主要刚开始熟悉 NIO,合计先用比较简单的排列5走势图方法 来实现功能。
排列5走势图你 说的原因,排列5走势图我 想了下。那个上线通知是排列5走势图服务 端通知给客户端的啊,为毛之后 客户端给排列5走势图服务 端发消息,会带有这个上线通知呢,这不是两个方向吗?有点没想通
排列5走势图关于   ·   FAQ   ·   API   ·   排列5走势图排列5走势图我 们 的愿景   ·   广告投放   ·   感谢   ·   实用小排列5走势图工具   ·   2941 人在线   最高记录 5168   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 14:17 · PVG 22:17 · LAX 07:17 · JFK 10:17
♥ Do have faith in what you're doing.