JAVA NIO TCP SOCKET 聊天群发(并发多线程写消息篇)
服务器中转消息,是费时的事,可以加入多线程。这样以来,会产生很多线程。可以运用线程池来管理。
这里运用java.util.concurrent包的Executors.newCachedThreadPool来管理。
废话少说,上代码:
服务器端: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.concurrent.ExecutorService;
import java.util.concurrent.Executors;
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;
SelectionKey ssckey;
ExecutorService exec;
public MySocketServer(){
running=true;
exec=Executors.newCachedThreadPool();
}
public void init(){
try {
selector = Selector.open();
ServerSocketChannel ssc = ServerSocketChannel.open();
ssc.configureBlocking(false);
ssc.socket().bind(new InetSocketAddress(2345)
相关文档:
最近公司碰到需要用图表的形式显示一些数据,我就开始到网上查询,查到了jfreechart和amcharts,这两者我都实现过了,jfreechart最后生成图片,但是图片效果不是我想要的,然后又研究amcharts 它的效果确实很好,而且官方网站上还有好些例子可供下载,网址是:www.amcharts.com
(想要完成一个amcharts图形需要swfobjects. ......
觉得留言很有道理,文章很哲理,一并转载 建议读者看原文地址
作者: 阮一峰
日期: 2008年12月 7日
下面的文章是More Joel on Software一书的第8篇。
我觉得翻译难度很大,整整两个工作日,每天8小时以上,才译出了5000字。除了Joel大量使用俚语,另一个原因是原文涉及"编程原理",好多东西我根本不懂。希 ......
代码如下:
package com.test.j2se;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5 {
/**数据加密
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
MessageDigest code = MessageD ......
用ServerSocket和Socket来编写服务器程序和客户程序,是Java网络编程的最基本的方式。这些服务器程序或客户程序在运行过程中常常会阻塞。例如当一个线程执行ServerSocket的accept()方法时,假如没有客户连接,该线程就会一直等到有了客户连接才从accept()方法返回。再例如当线程执行Socket的read()方法时,如果输入流中没有 ......
实不相瞒,Java是我见过的执行效率最低的程序设计语言,前不久在CSDN论坛上有个评测,计算9999的阶乘,同样的循环算法,Java的耗时是.NET的5倍。我以前很喜欢Serv-U,自从它用Java重写之后我就再也没用过,实在是太慢了,我宁可用IIS搭建FTP,虽然IIS搭建FTP在权限管理上很不灵活。
我有个同学,他是搞Java的,他给我说&ld ......