亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? serverthread.java~113~

?? 1. 消息即時通信 2. 消息發送實現一對一、一對多等多種發送模式 3. 發送的消息實現多彩文本編輯
?? JAVA~113~
字號:
package chat;
import java.io.*;
import java.util.*;
import java.net.*;
/**
 *
 * <p>Title:服務器線程類 </p>
 * <p>Description: 消息轉發</p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */
public class ServerThread extends Thread {
  String _name;
  String _key;
  int counter;
  DataOutputStream dos=null;
  DataInputStream dis=null;
  Socket socket=null;
  Hashtable peopleList=null;
 // ChatUserDB chatUserDB=new ChatUserDB();
 XmlDispose xmlDispose=new XmlDispose();
 /**
  *
  * @param socket Socket 客戶套接
  * @param peopleList Hashtable 用戶列表
  */
 public ServerThread(Socket socket,Hashtable peopleList){
    this.socket=socket;
    this.peopleList=peopleList;
    try{
      dos=new DataOutputStream(socket.getOutputStream());
      dis=new DataInputStream(socket.getInputStream());
    }catch(IOException e){
      e.printStackTrace();
    }
  }
  public void run() {
    String s="LOGIN_SUCCEED:";
    while(true){
      String _message = null;
      try {
        _message = dis.readUTF();
        if(_message.startsWith("LOGIN_NAME:")){//用戶登陸
          //調用數據庫函數,確認用戶
          //存線程
          _name=_message.substring(_message.indexOf(":")+1,_message.indexOf("LOGIN_PD:"));
          _key=_message.substring(_message.indexOf("LOGIN_PD:")+9);

          //if(chatUserDB.checkUser(_name,_key)){
          try{
            if (xmlDispose.checkUser(_name, _key)) {//驗證登陸成功
              peopleList.put(_name, this);
              dos.writeUTF("LOGIN_SUCCEED:");
              dos.writeUTF("LOGIN_PEOPLE:大家");
              Enumeration _enum = peopleList.elements();
              while (_enum.hasMoreElements()) { //發送名字
                ServerThread serverThread = (ServerThread) _enum.nextElement();
                serverThread.dos.writeUTF("LOGIN_PEOPLE:" + _name);
                if (serverThread != this) {
                  dos.writeUTF("LOGIN_PEOPLE:" + serverThread._name);
                }
              }
              dos.flush();
            }
            else {
              //System.out.println("eeee");
              dos.writeUTF("LOGIN_ERROR");
            }
          }catch(Exception e){}

        }
        else if(_message.startsWith("PRIVATE_MESSAGE:")){//私人消息
          String _toPeoples=_message.substring(_message.indexOf("#TOPEOPLE#")+10,_message.indexOf("#MESSAGECONTENT#"));
          String _content=_message.substring(_message.indexOf("#MESSAGECONTENT#")+16);
          StringTokenizer fenxi=new StringTokenizer(_toPeoples,"$");
          counter=fenxi.countTokens();
          for(int i=0;i<counter;i++){//循環轉發消息
            String _toPeople=fenxi.nextToken();
            ServerThread serverThread=(ServerThread)peopleList.get(_toPeople);
            if(serverThread!=null){
              serverThread.dos.writeUTF("PRIVATE_MESSAGE:"+_name+"對您說:"+"#CONTENT#"+_content);
            }else{
              serverThread.dos.writeUTF("PEOPLE_LEAVE:"+_toPeople+"已經離開");
            }
          }
        }
        else if(_message.startsWith("PUBLIC_MESSAGE:")){//公共消息
          //轉發消息
          String _content=_message.substring(_message.indexOf("#MESSAGECONTENT#")+16);
          Enumeration enum=peopleList.elements();
          while(enum.hasMoreElements()){//循環轉發消息
            ServerThread serverThread=(ServerThread)enum.nextElement();
            if(serverThread!=this){//不發消息發給自己
              serverThread.dos.writeUTF("PUBLIC_MESSAGE:"+ _name + "對大家說:" +"#CONTENT#"+ _content);
            }
          }
        }
        else if(_message.startsWith("CONSOLE_PRIVATE_MESSAGE:")){//控制臺消息
          String _toPeoples=_message.substring(_message.indexOf("#TOPEOPLE#")+10,_message.indexOf("#MESSAGECONTENT#"));
          String _content=_message.substring(_message.indexOf("#MESSAGECONTENT#")+16);
          StringTokenizer fenxi=new StringTokenizer(_toPeoples,"$");
          counter=fenxi.countTokens();
          for(int i=0;i<counter;i++){
            String _toPeople=fenxi.nextToken();
            ServerThread serverThread=(ServerThread)peopleList.get(_toPeople);
            if(serverThread!=null){
              serverThread.dos.writeUTF("CONSOLE_PRIVATE_MESSAGE:"+_name+"對您說:"+"#CONTENT#"+_content);
            }else{
              serverThread.dos.writeUTF("PEOPLE_LEAVE:"+_toPeople+"已經離開");
            }
          }
        }
        else if(_message.startsWith("CONSOLE_PUBLIC_MESSAGE:")){//控制臺公共消息
          //轉發消息
          String _content=_message.substring(_message.indexOf("#MESSAGECONTENT#")+16);
          Enumeration enum=peopleList.elements();
          while(enum.hasMoreElements()){
            ServerThread serverThread=(ServerThread)enum.nextElement();
            if(serverThread!=this){
              serverThread.dos.writeUTF("CONSOLE_PUBLIC_MESSAGE:"+ _name + "對大家說:" +"#CONTENT#"+ _content);
            }
          }
        }
        else if(_message.startsWith("SEND_FILE:")){//發送文件
          String _toPeople=_message.substring(_message.indexOf("#TOPEOPLE#")+10,_message.indexOf("#PORT#"));
          String _toSendFile=_message.substring(_message.indexOf("SEND_FILE:")+10,_message.indexOf("#TOPEOPLE#"));
          String _port=_message.substring(_message.indexOf("#PORT#")+6,_message.indexOf("#FILE_LENGTH#"));
          String fileLength=_message.substring(_message.indexOf("#FILE_LENGTH#")+13);
          ServerThread serverThread=(ServerThread)peopleList.get(_toPeople);

          InetAddress ipAddress=this.socket.getInetAddress();

            if(serverThread!=null){
              serverThread.dos.writeUTF("SEND_FILE:"+_name+"#TOSENDFILE#"+_toSendFile+"#IPADDRESS#"+ipAddress+"#PORT#"+_port+"#FILE_LENGTH#"+fileLength);
             // System.out.println("SEND_FILE:"+_name+"#TOSENDFILE#"+_toSendFile+"#IPADDRESS#"+ipAddress+"#PORT#"+_port+"#FILE_LENGTH#"+fileLength);
            }else{
              serverThread.dos.writeUTF("PEOPLE_LEAVE:"+_toPeople+"已經離開");
            }
          //File f=new File(_toSendFile);
          //System.out.println(_toPeople+" "+f.getName()+" "+_port);
        }
        else if(_message.startsWith("CANCEL_SENDING:")){
          //System.out.println(_message);
          String _fromPeople=_message.substring(_message.indexOf("CANCEL_SENDING:")+15,_message.indexOf("#TOPEOPLE#"));
          String _content=_message.substring(_message.indexOf("#TOPEOPLE#")+10);
          ServerThread serverThread=(ServerThread)peopleList.get(_fromPeople);
          if(serverThread!=null){
            serverThread.dos.writeUTF("CANCEL_SENDING:"+_content);
          }
        }
        else if(_message.startsWith("CANCEL_RECEIVED:")){
         // System.out.println(_message);
          String _fromPeople=_message.substring(_message.indexOf("CANCEL_RECEIVED:")+16,_message.indexOf("#TOPEOPLE#"));
          String _content=_message.substring(_message.indexOf("#TOPEOPLE#")+10);
          ServerThread serverThread=(ServerThread)peopleList.get(_fromPeople);
          if(serverThread!=null){
            serverThread.dos.writeUTF("CANCEL_RECEIVED:"+_content);
          }
        }
        else if(_message.startsWith("PRIVATEMESSAGELOG:")){
          String _content=_message.substring(18);
          String filePath="./chatLog";
          File chatLog=new File(filePath,this._name);
          if(!chatLog.exists()){
            chatLog.mkdir();
          }
          File saveFile;
          RandomAccessFile outputStream;
          try{
            saveFile = new File(chatLog,this._name + "私人");
            outputStream = new RandomAccessFile(saveFile, "rw");
            outputStream.seek(outputStream.length());
            outputStream.write(_content.getBytes());
            outputStream.close();
          }catch(Exception e){
          }
        }
        else if(_message.startsWith("PUBLICMESSAGELOG:")){
          String _content=_message.substring(17);
          String filePath="./chatLog";
          File chatLog=new File(filePath,this._name);
          if(!chatLog.exists()){
            chatLog.mkdir();
          }
          File saveFile;
          RandomAccessFile outputStream;
          try{
            saveFile = new File(chatLog,this._name + "公共");
            outputStream = new RandomAccessFile(saveFile, "rw");
            outputStream.seek(outputStream.length());
            outputStream.write(_content.getBytes());
            outputStream.close();
          }catch(Exception e){
          }
        }
        else if(_message.startsWith("REGISTER_NAME:")){
          _name=_message.substring(_message.indexOf(":")+1,_message.indexOf("#REGISTER_PD#"));
          _key=_message.substring(_message.indexOf("#REGISTER_PD#")+13,_message.indexOf("#REGISTER_NAME#"));
          String _trueName=_message.substring(_message.indexOf("#REGISTER_NAME#")+15,_message.indexOf("#REGISTER_EMAIL#"));
          String _email=_message.substring(_message.lastIndexOf("#REGISTER_EMAIL#")+16);
          byte result=xmlDispose.registerUser(_name,_key,_trueName,_email);
          if(result==1){
            dos.writeUTF("REGISTER_SUCCEED:");

          }else if(result==-1){
            dos.writeUTF("REGISTER_ERROR_EXIST");

          }else if(result==0){
            dos.writeUTF("REGISTER_ERROR");

          }
        }
      }
      catch (IOException ioe) {
        Enumeration enum=peopleList.elements();
        while(enum.hasMoreElements()){
          try{
            ServerThread serverThread=(ServerThread)enum.nextElement();
            if(serverThread!=this&&serverThread.isAlive()){
              serverThread.dos.writeUTF("PEOPLE_LEAVE:"+this._name);
            }
          }catch(Exception e){

          }
        }
        try{
          if (peopleList.containsKey(_name)) {
            peopleList.remove(_name);
          }
        }catch(Exception e){

        }
        //System.out.println();
        //ioe.printStackTrace();
        try{
          this.socket.close();
          this.dos.flush();
          this.dos.close();
          this.dis.close();
          break;
        }catch(Exception  e){
          //System.out.println("serverthread");
          //e.printStackTrace();
        }
      }
    }

  }









 /* public static void main(String[] args) {
  }*/
}










?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91高清视频在线| 欧美图片一区二区三区| 欧美一区二区三区婷婷月色| 中文字幕精品在线不卡| 美女脱光内衣内裤视频久久网站| 99久久99久久综合| 久久综合久久综合久久| 丝袜美腿一区二区三区| 色网综合在线观看| 欧美激情中文字幕一区二区| 寂寞少妇一区二区三区| 在线91免费看| 亚洲高清不卡在线观看| 99这里只有精品| 中文字幕乱码一区二区免费| 韩国精品在线观看| 5858s免费视频成人| 亚洲资源中文字幕| 99久久99久久久精品齐齐| 日本一区二区综合亚洲| 激情久久五月天| 日韩欧美二区三区| 美国精品在线观看| 日韩一级精品视频在线观看| 偷拍一区二区三区四区| 欧美日韩一本到| 亚洲综合在线五月| 色一情一伦一子一伦一区| 亚洲欧洲99久久| 成人h版在线观看| 国产精品乱码人人做人人爱| 国产精品一二三四| 国产亚洲综合在线| 国产成人精品综合在线观看| 久久久精品国产免费观看同学| 精品一区二区三区久久久| 日韩免费一区二区| 国产做a爰片久久毛片| 欧美精品一区二区三区高清aⅴ| 久久精品999| 精品福利视频一区二区三区| 蜜臀99久久精品久久久久久软件| 欧美一区二区三区白人| 日本成人在线视频网站| 欧美成人伊人久久综合网| 久久狠狠亚洲综合| 精品久久久久av影院| 国内国产精品久久| 久久免费视频色| 国产成人av影院| 国产精品女主播在线观看| 99精品视频一区二区三区| 成人欧美一区二区三区黑人麻豆| 一本大道久久a久久综合| 亚洲制服丝袜一区| 69堂成人精品免费视频| 琪琪一区二区三区| 337p粉嫩大胆噜噜噜噜噜91av| 国产美女一区二区三区| 国产精品国产三级国产专播品爱网| 99视频精品在线| 亚洲一卡二卡三卡四卡五卡| 91精品黄色片免费大全| 国产美女在线精品| 综合激情成人伊人| 欧美裸体bbwbbwbbw| 久久成人免费电影| 国产精品午夜在线观看| 91久久一区二区| 青草国产精品久久久久久| 久久精品夜色噜噜亚洲a∨| 99视频有精品| 日韩一区精品字幕| 国产亚洲精品精华液| 91久久线看在观草草青青| 天天综合色天天综合色h| 精品粉嫩aⅴ一区二区三区四区| 不卡在线视频中文字幕| 丝袜美腿亚洲色图| 国产欧美一区二区精品婷婷| 色综合久久天天| 久久精品二区亚洲w码| 1区2区3区欧美| 日韩午夜中文字幕| 成人国产精品视频| 丝袜a∨在线一区二区三区不卡| 久久精品亚洲麻豆av一区二区 | 亚洲综合视频网| 欧美一二三区精品| 99久久综合狠狠综合久久| 天天综合网天天综合色| 国产日韩av一区二区| 欧美亚洲动漫另类| 国产裸体歌舞团一区二区| 亚洲另类春色校园小说| 欧美大度的电影原声| 91毛片在线观看| 久久精工是国产品牌吗| 亚洲黄色av一区| 久久久亚洲午夜电影| 欧美视频一区二区三区| 丁香五精品蜜臀久久久久99网站| 午夜精品免费在线观看| 中文字幕av在线一区二区三区| 7777精品伊人久久久大香线蕉的| 成人免费毛片高清视频| 日本午夜精品一区二区三区电影| 中文字幕一区二区三区乱码在线| 日韩欧美中文字幕公布| 91黄色免费网站| 成人精品一区二区三区四区 | 午夜精品久久久久久久久| 国产午夜久久久久| 欧美一区二区观看视频| 色综合久久中文综合久久牛| 国产麻豆成人传媒免费观看| 丝袜亚洲另类丝袜在线| 亚洲美女视频在线| 亚洲国产高清在线观看视频| 欧美成人欧美edvon| 欧美日韩国产123区| 色综合天天天天做夜夜夜夜做| 美脚の诱脚舐め脚责91 | 亚洲国产一区二区a毛片| 国产精品美女久久久久高潮| 欧美大片一区二区| 欧美肥妇bbw| 欧美日韩视频专区在线播放| jlzzjlzz亚洲日本少妇| 国产精品影视网| 黄色日韩三级电影| 日韩激情视频网站| 午夜久久福利影院| 亚洲国产成人va在线观看天堂| 亚洲欧洲av在线| 国产精品视频在线看| 国产亚洲欧美在线| 亚洲精品一区二区三区香蕉| 91精品国产一区二区三区香蕉| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 中文字幕巨乱亚洲| 久久精品在这里| 亚洲精品一区在线观看| 精品人在线二区三区| 欧美一区二区国产| 欧美精品日韩精品| 色视频成人在线观看免| 91天堂素人约啪| 97超碰欧美中文字幕| caoporm超碰国产精品| av中文字幕一区| 99re成人精品视频| 91猫先生在线| 色乱码一区二区三区88| 在线观看av一区二区| 欧美三级韩国三级日本一级| 欧美伊人久久久久久午夜久久久久| 91成人在线观看喷潮| 欧美怡红院视频| 欧美精品日日鲁夜夜添| 欧美一区二区三区在线看| 日韩欧美精品三级| 久久亚洲一区二区三区明星换脸| 精品国产麻豆免费人成网站| 2021国产精品久久精品| 国产亚洲欧美激情| 中文字幕一区二区三| 伊人一区二区三区| 天天做天天摸天天爽国产一区| 日产国产欧美视频一区精品| 紧缚奴在线一区二区三区| 国产精品18久久久久久久久| 成人av手机在线观看| 色哟哟在线观看一区二区三区| 欧美性受xxxx| 欧美一级日韩一级| 久久亚洲欧美国产精品乐播 | 精品国产麻豆免费人成网站| 久久久.com| 亚洲免费视频中文字幕| 亚洲高清不卡在线| 久久99精品国产| 成人网男人的天堂| 欧美性猛片xxxx免费看久爱| 91精品国产综合久久精品性色| 精品久久一区二区三区| 亚洲国产精品成人久久综合一区| 亚洲摸摸操操av| 日本成人在线看| 高清免费成人av| 欧美视频自拍偷拍| 精品国产自在久精品国产| 国产日本欧美一区二区| 一区二区三区在线高清| 奇米一区二区三区av| 懂色av噜噜一区二区三区av | 久草精品在线观看| 北条麻妃一区二区三区| 欧美日韩综合色| 久久综合九色综合欧美98|