• 彭老师在第一章的UDPHandler代码是读,写交替收发数据的过程,先对读事件感兴趣,读到数据后,马上注册对写事件感兴趣,如此往复.实际上也就是规定了UDP SERVER的工作是读写交叉,而不能连续去读. 如果UDPSERVER端对接收到的帧做一个帧头类别的判断,对于帧头不符合要求的帧都要
  • 下面一个客户端代码(NioClient)一个服务器端代码(NioServer)先运行NioServer 再运行NioClient 第一次正常 但隐藏着3个奇怪的地方: 1:一关闭NioClient(NioServer还开着), NioSer
  • 偶是菜鸟,第一次来这里,还请大师们多多指点!:P 我在做一个私人聊天室,设计思想是这样的: 客户A进去以后,可以选择看看在线客户列表,然后选择一个人,比如B,告诉服务器,服务器再告诉B,一旦B答应和他聊天了,服务 icon
  • 用一般的DatagramSocket监听端口上的消息用如下代码while(isRun){ receiverByte=new byte[Global.DATAGRAM_BYTES]; receiver icon
  • 我现在要从一台server通过tcp得到一个数据文件,server端给我传过来的数据内容是:200 OK(表示有这个文件)FILESIZE 1496124(数据文件的大小)紧接着就是我要的到的数据文件 我的代码如下publi icon
  • 在一写一个多用户的Server程序。现在的问题是在selector.select()方法上。如果调用select()方法,阻塞方式等待事件,这个时候就不可以再在这个selector上注册新的事件,我感觉是互相锁了。如果调用select(100)这样的非阻塞方式,可以避开这个问 icon
  • 使用java.nio包后,建立连接后,读取的请求数据都是buffer,那如何实现读取一个数据包的需求呢?(数据包的长度是第一个字节)以前用stream流来考虑的话,非常直观,但是现在的nio是使用的ByteBuffer,难道我要对ByteBUffer中的byte数据重新做队列来实现读数据包的需求? icon
  • while(selector.selectedKeys().iterator().hasNetx()){ SelectionKey key = (SelectionKey)itor.next(); itor.remove(); if(key.isWritable icon
  • 我使用Nio来进行Socket通信,客户端如下发请求: String request = “......”; keyChannel.write(encoder.encode( CharBuffe icon
  • 公司有个项目,是联网收费的。但是不想用J2EE的标准架构,因为这个项目主要的特点就是 要求反应速度比较快,能够处理大量的并发事件,对于事务处理没有什么特殊的要求。 所以想采用下面的架构,大家帮忙看看会有什么问题: icon
  • java中提供了这么多的流操作,就下面的方法而言,它们有什么区别,什么时候用什么样的方法比较合适呀,FileInputStream DataInputStreamBufferedInputStreamInputStreamReaderFileReader icon
  • 我使用了下面一段来接收连接请求,使用的nio包,结果发现在第一次等待连接请求时,程序会阻塞在selector.select()这里.一旦接收到一个连接请求后,程序就不会再阻塞在任何地方,会在for循环里不停的跑,而cpu也基本是100%的转.请问这是什么原因?有什么法子,让cpu不至于这样100%的 icon
  • 当对Selector进行了注册后。要不断的等待新的请求,所以使用了一个无限循环,并在其中调用Selector的select()方法。如果程序一直运行这个循环肯定就不会停止。这是不是会影响系统性能? 新手不介意我的问题哈,还望指点一二。 icon