易截截图软件、单文件、免安装、纯绿色、仅160KB

JAVA NIO TCP SOCKET 聊天群发

以前都是用一般的socket编程,用线程来控制。最近突然用nio来做些东西。
nio的好处我来说一下:第一,读写都是基于块的,效率高。第二,通过引入selector,简化了网络编程模型,异步非阻塞。
既然有这么多好处,那就写个NIO TCP网络聊天室来练练手吧。
因为没有写gui,是基于控制台的所以没写私了的部分,只写了公共聊天室。(其实,既然是服务器端可以分发给所有人,分发给特定人也是很容易实现的。
注意:这里只是为了练手,联系服务器端分发消息到各个客户端。TCP 来写聊天室,在现实中是不可取的。IM都是基于UDP来写的。
先上代码吧。
服务器端代码 MySocketServer.java
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.kevin.nio;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.util.Date;
import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author kevin
 */
public class MySocketServer implements Runnable{
  
    private boolean running;
   
    private Selector selector;
    String writeMsg;
    StringBuffer sb=new StringBuffer();
    SelectionKey ssckey;
    public MySocketServer(){
       
        running=true;
       
    }
    public void init(){
        try {
            selector = Selector.open();
            ServerSocketChannel ssc = ServerSocketChannel.open();
         &nbs


相关文档:

JNA实现Java调用Fortran

在成功实现Java调用C++之后,接下来想到能否通过JNA实现Java调用Fortran,今天试验了一下,还是比较容易的。
网上有一个Java调用F95的例子,但是我考虑不仅要实现F95的调用,还要实现F77的调用,所以费了一些周折。
问题的关键在于F77为过程名自动添加了一个尾部的下划线,所以sub1这个过程,到Java一端,就变成了sub1_, ......

Java开发方面的术语 Java学习第一步

        Java开发平台的种类很多,在这篇文章中我主要以J2SE为例子。J2SE几乎是开发所有Java应用程序的必备。它主要是由一个compiler(编译器),一个运行环境(runtime environment),和一个核心的API所构成。我们要再次要强调的是,您所编写应用程序并不是直接在您的本地操作系统上执行的 ......

JAVA编程规范

命名规范
 
定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失。(这些规范并不是一定要绝对遵守,但是一定要让程序有良好的可读性)
 
Package 的命名
Package 的名字应该都是由一个小写单词组成。
 
Class 的命名
Class 的名字必须 ......

运用加密技术保护Java源代码

       运用加密技术保护Java源代码
       
java
程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。本文讨论如何在不修改原有程序的情
况下,通过
加密
技术保护源代
码。
  一、为什么要
加密


  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号