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

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

?? qqsever.java

?? IO流的項目好
?? JAVA
字號:
//服務器中轉
package myQQ;

import javax.swing.*;
import java.io.*;
import java.net.*;
import java.util.*;

class QQSever extends JFrame
{
	JTextArea jta = new JTextArea();
	JScrollPane jsp = new JScrollPane(jta);
	//通信
	ServerSocket ss;
	Socket sc;
	//讀取信息
	ObjectInputStream ois;
	//發送消息
	ObjectOutputStream oos;
	int c=0; //記錄連接數
	//記錄連接及對應id的HashTable
	Hashtable htS = new Hashtable();
	
	QQSever()
	{
		super("QQ服務器");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(400,300);
		this.getContentPane().add(jsp);
		this.setResizable(false);
		this.setVisible(true);
		//服務器監聽
		try {
			ss = new ServerSocket(1500);
			jta.append("等待連接...\n");
			while(true)
			{
				sc = ss.accept();	
				c++;
				new QQCS(sc).start(); 
				jta.append("第"+c+"個客戶端\t");
			}
	    }
	    catch (Exception ex) {
	    	System.out.println (ex);
	    }
	}
	
	//客戶端線程
	class QQCS extends Thread
	{
		Socket any;
		String id;
		
		public QQCS(Socket any)
		{
			this.any = any;
		}
		
		public void run()
		{	//線程啟動接收消息
			try {
				this.readMess();
		    }
		    catch (Exception ex) {
		    	System.out.println (ex);
		    }
		}
		
		//接受消息
		public void readMess() throws Exception
		{	
			while(true)
			{
				ois = new ObjectInputStream(any.getInputStream());
				Object tem = ois.readObject();
				if(tem instanceof MessType)
				{
					MessType mt = (MessType)tem;
					if(mt.State==10||mt.State==11)
					{	//聊天信息操作
						this.chatInfoOperation(mt);
					}
					else if(mt.State==41||mt.State==42||mt.State==4)
					{	//注冊操作
						this.registerOperation(mt);
					}
					else
					{	//狀態改變操作
						this.stateOperation(mt);
						if(mt.State==-1)
						{	//下線操作
							any.close();
							break;
						}
					}
				}
				else
				{
					System.out.println ("stop!");
					break;
				}
			}
		}
		
		public void stateOperation(MessType mt)
		{	//讀入消息為狀態改變信息的操作
			int sf = mt.State;
			this.id = mt.Sendid;
			switch (sf) {
		    	case 0:
		    		this.onLine(mt);
					break;
		    	case 2: break;
		    	case 3: break;
		    	case -1:
		    		//移除該id對應的Socket
		    		if(htS.size()>0)
		    			htS.remove(this.id);
		    		break;
		    }
		    //取得狀態信息并顯示
		    jta.append(mt.getStateInfo());
		}
		
		public void onLine(MessType mt)
		{	//上線操作
			if(mt.Sendpw.length()>0)
			{	//登錄驗證
				String f = QQDBO.logCheck(mt);
				jta.append(f+"\n");
				//將id和Socket存入Hashtable
				htS.put(this.id,this.any);
				if(f.equals("登錄成功"))
				{	//發回好友列表
					Vector v = QQDBO.getFriend(mt);
					MessType result = new MessType(v,0);
					result.Readid = mt.Sendid;
					result.Results = f;
					this.sendMess(result);
					this.informOnLine(v,mt);
				}	
				else
				{	//發回驗證結果
					MessType result = new MessType(f,0);
					result.Readid = mt.Sendid; 
					this.sendMess(result); 
					//登錄不成功除去該連接
					htS.remove(this.id);
				}
			}
		}
		
		public void informOnLine(Vector x,MessType mt)
		{	//將上線信息發送給好友
			for (int i = 0; i<x.size(); i++)
			{
				Vector tem = (Vector)x.elementAt(i);
				String rid = tem.elementAt(2).toString();
				if(!rid.equals(mt.Sendid))
				{
					MessType mtR = new MessType(mt.Sendid,20); //發送方號碼作為結果返回
					mtR.Readid = rid;
					this.sendMess(mtR);	
				}
			}
		}
		
		public void chatInfoOperation(MessType mt)
		{	//讀入消息為聊天信息的操作
			if(htS.containsKey(mt.Readid))
			{	//連接中存在信息接收id的鍵值
				this.sendMess(mt);
				mt.setHaseSend(true);
			}
			//取得讀入消息并顯示
			jta.append(mt.getChatInfo());
			//同時保存至數據庫
			boolean flag = QQDBO.chatInfoIn(mt);
			if(flag)
				jta.append("聊天信息存入成功\n");
		}
		
		public void registerOperation(MessType mt)  throws Exception
		{	//讀入消息為注冊信息的操作
			//將id和Socket存入Hashtable
			htS.put(mt.Sendid,this.any);
			if(mt.State==41)
			{	//請求省市信息
				MessType pro = new MessType(QQDBO.getPlace(1,mt),41);
				pro.Readid = mt.Sendid;
				this.sendMess(pro); //發回信息 
			}
			else if(mt.State==42)
			{	//請求省市信息
				MessType city = new MessType(QQDBO.getPlace(2,mt),42);
				city.Readid = mt.Sendid;
				this.sendMess(city); 
			}
			else if(mt.State==4)
			{	//注冊
				boolean f = QQDBO.logIn(mt);
				if(f)
				{
					jta.append("注冊成功!");
					MessType mtId = new MessType(QQDBO.getLogId(),4);
					mtId.Readid = mt.Sendid;
					this.sendMess(mtId); //發回注冊號
					htS.remove(mt.Sendid); //清除連接
					any.close(); //中止該連接
				}
			}
		}
		
		//發送消息
		public void sendMess(MessType mt) 
		{	//將消息發送至與接收方id對應的連接
			try {	
				Socket stem = (Socket)htS.get(mt.Readid);
				oos = new ObjectOutputStream(stem.getOutputStream());
				oos.writeObject(mt);
				oos.flush();
				jta.append("發送成功\n");	
		    }
		    catch (Exception ex) {
		    	System.out.println (ex);
		    }
		}
	}
	
	public static void main(String[]args)
	{
		JFrame.setDefaultLookAndFeelDecorated(true);
		new QQSever();
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲老司机在线| 日韩制服丝袜av| 欧美激情资源网| 亚洲成年人网站在线观看| 国产美女在线观看一区| 欧美伊人精品成人久久综合97| 精品999在线播放| 一区二区免费在线| 成人高清视频免费观看| 欧美成人激情免费网| 一区二区三区四区在线免费观看| 国产一区二区三区四区五区美女| 欧美午夜片在线看| 亚洲男同1069视频| 成人小视频在线观看| 日韩精品一区二区三区三区免费 | 777午夜精品免费视频| 欧美国产欧美综合| 国产在线精品一区二区夜色| 欧美日本韩国一区二区三区视频| 国产精品美女久久久久久2018| 九色|91porny| 欧美一区二区久久| 日欧美一区二区| 欧美日韩国产免费一区二区| 亚洲啪啪综合av一区二区三区| 岛国精品在线观看| 国产日本欧美一区二区| 国产成人日日夜夜| 国产欧美精品区一区二区三区| 国产一区高清在线| 久久久久99精品国产片| 九九热在线视频观看这里只有精品| 3751色影院一区二区三区| 日韩极品在线观看| 欧美一区二区三区视频| 日本美女视频一区二区| 日韩欧美在线网站| 久久丁香综合五月国产三级网站| 欧美一区二区三区影视| 美女脱光内衣内裤视频久久影院| 欧美一区二区三区视频在线| 天天操天天综合网| 日韩欧美一区二区三区在线| 欧美a一区二区| 精品国产sm最大网站| 国产伦精品一区二区三区视频青涩 | 激情av综合网| 26uuu欧美| 国产成人日日夜夜| 亚洲天堂成人在线观看| 91美女片黄在线| 夜夜嗨av一区二区三区| 欧美日韩国产一级二级| 美女一区二区三区| 国产偷国产偷亚洲高清人白洁| 国产999精品久久久久久| 国产精品午夜久久| 色先锋aa成人| 日一区二区三区| 欧美大尺度电影在线| 国产夫妻精品视频| 一级特黄大欧美久久久| 欧美日韩极品在线观看一区| 免费欧美日韩国产三级电影| 337p日本欧洲亚洲大胆色噜噜| 国产99久久久国产精品潘金网站| 亚洲三级电影网站| 欧美精选一区二区| 国产寡妇亲子伦一区二区| 亚洲欧美在线高清| 欧美一区二区在线观看| 国产精品18久久久久| 亚洲欧美色图小说| 欧美videofree性高清杂交| 高清beeg欧美| 亚洲不卡av一区二区三区| 337p粉嫩大胆噜噜噜噜噜91av | 国产婷婷色一区二区三区| 91视频.com| 麻豆成人免费电影| 中文字幕在线免费不卡| 制服丝袜日韩国产| 成人av资源站| 青青青爽久久午夜综合久久午夜| 国产视频视频一区| 欧美日免费三级在线| 国产精品综合二区| 亚洲成av人片在www色猫咪| 中文字幕一区二区三区精华液| 欧美巨大另类极品videosbest| 成人一区在线观看| 久久电影网站中文字幕| 亚洲成av人**亚洲成av**| 亚洲视频 欧洲视频| 久久综合狠狠综合久久激情| 欧美乱熟臀69xxxxxx| 99精品久久只有精品| 狠狠色伊人亚洲综合成人| 肉肉av福利一精品导航| 亚洲一区二区三区四区的| 国产欧美一区视频| 久久久久成人黄色影片| 日韩精品一区二区三区四区视频| 欧美揉bbbbb揉bbbbb| 色94色欧美sute亚洲线路一久| 丁香五精品蜜臀久久久久99网站| 日本中文一区二区三区| 亚洲成av人片在线观看| 一个色在线综合| 亚洲激情图片qvod| 综合色天天鬼久久鬼色| 国产精品免费视频观看| 久久久久国产精品厨房| 久久久综合九色合综国产精品| 欧美一区二区性放荡片| 91麻豆精品国产91| 欧美一区二区三区影视| 91精品一区二区三区在线观看| 欧美三级视频在线| 欧美这里有精品| 欧美亚洲自拍偷拍| 欧洲精品在线观看| 欧美午夜视频网站| 91精品中文字幕一区二区三区| 欧美日韩一区二区在线视频| 欧洲精品视频在线观看| 欧美日韩一区中文字幕| 欧美精品 日韩| 精品久久人人做人人爽| 欧美一区二区高清| 精品国一区二区三区| 2020国产精品自拍| 国产精品免费视频观看| 亚洲柠檬福利资源导航| 一区二区欧美国产| 欧美aa在线视频| 国产精品中文字幕欧美| bt欧美亚洲午夜电影天堂| 91日韩在线专区| 51精品秘密在线观看| 精品欧美一区二区在线观看| 久久免费偷拍视频| 亚洲精品高清视频在线观看| 亚洲一区二区三区精品在线| 午夜精品久久久久久久99水蜜桃| 蜜桃传媒麻豆第一区在线观看| 男人操女人的视频在线观看欧美 | 99国产精品国产精品毛片| 色噜噜狠狠色综合中国| 69av一区二区三区| 国产人久久人人人人爽| 亚洲国产美国国产综合一区二区| 蜜臀va亚洲va欧美va天堂| 丁香六月综合激情| 欧美日韩mp4| 国产欧美日韩视频在线观看| 一区二区三区av电影| 黑人巨大精品欧美一区| 色婷婷综合久久久| 久久亚洲精品国产精品紫薇| 亚洲天堂a在线| 韩国一区二区在线观看| 欧美在线不卡视频| 久久九九国产精品| 亚洲高清免费视频| 成人黄页毛片网站| 欧美一区二区在线看| 亚洲欧美日韩在线| 国产一区在线视频| 欧美日韩久久久久久| 国产精品日韩精品欧美在线| 天堂成人免费av电影一区| a亚洲天堂av| 精品裸体舞一区二区三区| 亚洲国产精品久久久久秋霞影院| 国产成a人亚洲精| 欧美一级xxx| 亚洲国产综合91精品麻豆| 成人av动漫网站| 久久久久久毛片| 久久精品国产第一区二区三区| 欧美性一二三区| 亚洲裸体xxx| 成人高清av在线| 久久精品网站免费观看| 久久丁香综合五月国产三级网站| 在线观看视频一区| 亚洲天堂成人在线观看| 成人免费av资源| 中文字幕第一区二区| 国产精品一区二区三区乱码| 精品日韩一区二区三区免费视频| 亚洲成人动漫av| 欧美日韩国产首页| 视频在线在亚洲| 欧美日韩在线一区二区| 夜夜操天天操亚洲| 欧美在线观看视频在线| 亚洲免费av高清|