北大青鸟佳音旗舰

Java Socket线程的设计原理介绍

点击数: 更新时间:2010-05-09 15:14:28
 

Java Socket线程我们经常会用到的技术,但是有很多程序员还是有不少的使用问题,下面我们就看看如何才能进行有关的代码编写,希望大家又说收获。网络的伟大之一也是信息共享,Server可以主动向所有Client广播消息,同时Client也可以向其它Client发布消息。

  下面看看如何开发一个可以实时传递消息的程序。

  Java Socket线程的设计原理:

  服务器端接受客户端的连接请求,同时启动一个线程处理这个连接,线程不停的读取客户端输入,然后把输入加入队列中,等候处理。在线程启动的同时将线程加入队列中,以便在需要的时候定位和取出。

  {源码}

  1.import java.io.*;

  2.import java.net.*;

  3.import java.util.*;

  4.import java.lang.*;

  5.public class Server extends ServerSocket

  6.{

  7.private static ArrayList User_List = new ArrayList();

  8.private static ArrayList Threader = new ArrayList();

  9.private static LinkedList Message_Array = new LinkedList();

  10.private static int Thread_Counter = 0;

  11.private static boolean isClear = true;

  12.protected static final int SERVER_PORT = 10000;

  13.protected FileOutputStream LOG_FILE = new FileOutputStream("d:/connect.log", true);

  14.public Server() throws FileNotFoundException, IOException

  15.{

  16.super(SERVER_PORT);

  17.new Broadcast();

  18.//append connection log

  19.Calendar now = Calendar.getInstance();

  20.String str = "[" + now.getTime().toString() + "] Accepted a connection1512";

  21.byte[] tmp = str.getBytes();

  22.LOG_FILE.write(tmp);

  23.try

  24.{

  25.while (true)

  26.{

  27.Socket socket = accept();

  28.new CreateServerThread(socket);

  29.}

  30.}

  31.finally

  32.{

  33.close();

  34.}

  35.}

  36.public static void main(String[] args) throws IOException

  37.{

  38.new Server();

  39.}

  40.//--- Broadcast

  41.class Broadcast extends Thread

  42.{

  43.public Broadcast()

  44.{

  45.start();

  46.}

  47.public void run()

  48.{

  49.while (true)

  50.{

  51.if (!isClear)

  52.{

  53.String tmp = (String)Message_Array.getFirst();

  54.for (int i = 0; i < Threader.size(); i++)

  55.{

  56.CreateServerThread client = (CreateServerThread)Threader.get(i);

  57.client.sendMessage(tmp);

  58.}

  59.Message_Array.removeFirst();

  60.isClear = Message_Array.size() > 0 ? false : true;

  61.}

  62.}

  63.}

  64.}

 


            

相关信息
没有相关内容
©Copyright2004 - 2009 www.bjaccp.com, All Rights Reserved
版权所有2004-2008 北大青鸟APTECH( 北京佳音旗舰 ) 授权培训中心
地址:北京西城区北礼士路100号( 阜成门华联商厦西门北侧北走50米)100037北大青鸟地址
电话:010-68351302/68351303
京ICP备06064589号
51.la