设为首页 加入收藏

TOP

Java NIO 服务器与客户端实现示例(三)
2015-02-02 14:44:11 来源: 作者: 【 】 浏览:48
Tags:Java NIO 服务器 客户端 实现 示例
le()){
? ? ? ? ? ? ? ? ? ? ? ? ByteBuffer byteBuffer = ByteBuffer.allocate(128);? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? channel.read(byteBuffer);
? ? ? ? ? ? ? ? ? ? ? ? byteBuffer.flip();
? ? ? ? ? ? ? ? ? ? ? ? CharBuffer charBuffer = CharsetHelper.decode(byteBuffer);
? ? ? ? ? ? ? ? ? ? ? ? String answer = charBuffer.toString();
? ? ? ? ? ? ? ? ? ? ? ? System.out.println(Thread.currentThread().getId() + "---" + answer);
? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? String word = getWord();
? ? ? ? ? ? ? ? ? ? ? ? if(word != null){
? ? ? ? ? ? ? ? ? ? ? ? ? ? channel.write(CharsetHelper.encode(CharBuffer.wrap(word)));
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? else{
? ? ? ? ? ? ? ? ? ? ? ? ? ? isOver = true;
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? sleep();? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? } catch (IOException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? ? ? finally{
? ? ? ? ? ? if(channel != null){
? ? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? channel.close();
? ? ? ? ? ? ? ? } catch (IOException e) {? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? ? ? }? ? ? ? ? ? ? ? ?
? ? ? ? ? ? }
? ? ? ? ? ?
? ? ? ? ? ? if(selector != null){
? ? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? selector.close();
? ? ? ? ? ? ? ? } catch (IOException e) {
? ? ? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? }
?
? ? private void init() {
? ? ? ? words = new ArrayBlockingQueue(5);
? ? ? ? try {
? ? ? ? ? ? words.put("hi");
? ? ? ? ? ? words.put("who");
? ? ? ? ? ? words.put("what");
? ? ? ? ? ? words.put("where");
? ? ? ? ? ? words.put("bye");
? ? ? ? } catch (InterruptedException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }?
? ? ? ?
? ? ? ? random = new Random();
? ? }
? ?
? ? private String getWord(){
? ? ? ? return words.poll();
? ? }
?
? ? private void sleep() {
? ? ? ? try {
? ? ? ? ? ? TimeUnit.SECONDS.sleep(random.nextInt(3));
? ? ? ? } catch (InterruptedException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? }?
? ?
? ? private void sleep(long l) {
? ? ? ? try {
? ? ? ? ? ? TimeUnit.SECONDS.sleep(l);
? ? ? ? } catch (InterruptedException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? }
}


首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java AIO 服务器与客户端实现示例 下一篇Java BIO 服务器与客户端实现示例

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: