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

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

?? socketserver.java

?? 一個用java 編寫的可以和多個人聊天的服務器
?? JAVA
字號:
package chat.socket;

import chat.*;

import java.io.*;
import java.net.*;

public class SocketServer extends BaseServer
{
	public final static int PORT_NUMBER = 2222; // Our chat application port
	
	// Invoke type of method to be called
	public final static int INVOKE_GET_HISTORY = 0;
	public final static int INVOKE_BROADCAST = 1;
	public final static int INVOKE_GET_USER = 2;
	public final static int INVOKE_DISCONNECT = 3;

	// Status of logon
	public final static int LOGON_SUCCESSFUL = 0;
	public final static int LOGON_FAILED = -1;
	
	// Type of data to be sent
	public final static int SENT_MSG = 0;
	public final static int SENT_USER = 1;
	public final static int REMOVE_USER = 2;
	public final static int CLEAR_USER = 3;

	public static void main(String[] args) throws IOException
	{
		SocketServer ss = new SocketServer();
	}

	public SocketServer() throws IOException
	{
		Socket client;
		ServerSocket ss = new ServerSocket(PORT_NUMBER);
		while (true)
		{
			client = ss.accept();
			// Separate thread for different user
			SocketSkeleton skel = new SocketSkeleton(client);
			addClient(skel);
			skel.start();
		}
	}

	// SocketSkeletion thread	
	class SocketSkeleton extends Thread implements ChatClient
	{
		protected Socket receiveSocket;
		protected Socket sendSocket;

		protected DataInputStream inInput;
		protected DataOutputStream inOutput;
		
		protected DataOutputStream outOutput;
		
		public SocketSkeleton(Socket client)
		{
			receiveSocket = client;
		}

		public void run()
		{
			int methodID;
			try
			{
				String userid = initialize();
				broadcastUser(userid);
				while(true)
				{
					methodID = inInput.readInt();
					switch(methodID)
					{
						case INVOKE_BROADCAST: 	handleBroadcast();
									break;
						case INVOKE_GET_HISTORY: handleGetHistory();
									 break;
						case INVOKE_GET_USER: handleGetUser();
									break;
						case INVOKE_DISCONNECT: handleDisconnectUser();
									break;
					}
					/*if (methodID<0)
					{
						handleDisconnectUser();
					}*/
				}
			}catch (Exception ioe) {}
		}

		protected void handleBroadcast() throws IOException
		{
			String message = inInput.readUTF();
			broadcastMessage(message);
			addMessageToLog(message);
		}
		
		protected void handleGetHistory() throws IOException
		{
			ChatMessage message;
			java.util.Date msgDate;
			String msgText;

			int count = messageHistory.size();
			inOutput.writeInt(count);
			for (int i = 0; i < count; i++)
			{
				message = (ChatMessage) (messageHistory.elementAt(i));
				msgDate = message.messageDate;
				msgText = message.messageText;
				inOutput.writeLong( msgDate.getTime());
				inOutput.writeUTF(msgText);
			}
		}

		protected void handleGetUser() throws IOException
		{
			String user;
			int count = userServerList.size();
			inOutput.writeInt(count);
			for (int i=0; i < count; i++)
			{
				user = (String) (userServerList.elementAt(i));
				inOutput.writeUTF(user);
			}
		}

		protected void handleDisconnectUser() throws IOException
		{
			// Method to remove user from list
			// kill this thread
			String user = inInput.readUTF();
			removeClient(this);
			broadcastRemovedUser(user);
			System.out.println("Exit : " + user + " has left the server!");
			//destroy();
		}

		protected String initialize() throws IOException, LogonFailedException
		{
			InputStream is;
			OutputStream os;
			InetAddress addr;

			is = receiveSocket.getInputStream();
			inInput = new DataInputStream(is);
			os = receiveSocket.getOutputStream();
			inOutput = new DataOutputStream(os);
			String userid = inInput.readUTF();
			String password = inInput.readUTF();
			int sendPort = inInput.readInt();
			addr = receiveSocket.getInetAddress();

			if (isValidUserInfo(userid, password))
			{
				inOutput.writeInt(LOGON_SUCCESSFUL);
				sendSocket = new Socket(addr, sendPort);
				os = sendSocket.getOutputStream();
				outOutput = new DataOutputStream(os);
				System.out.println("(" + addr.toString() + ") : " + userid + " has joined the server!");
			}
			else
			{
				inOutput.writeInt(LOGON_FAILED);
				throw new LogonFailedException("Invalid userid / password");
			}
			return userid;
		}	

		public void displayMessage(ChatMessage message) throws IOException
		{
			java.util.Date msgDate = message.messageDate;
			long timeValue = msgDate.getTime();
			String msgText = message.messageText;
			outOutput.writeInt(SENT_MSG);
			outOutput.writeLong(timeValue);
			outOutput.writeUTF(msgText);
		}

		// Overwrite methods
		public void addUser(String id) throws Exception
		{
			outOutput.writeInt(SENT_USER);
			outOutput.writeUTF(id);
		}
		public void removeUser(String id) throws Exception
		{
			outOutput.writeInt(REMOVE_USER);
			outOutput.writeUTF(id);
		}
		public void clearUser() throws Exception
		{
			outOutput.writeInt(CLEAR_USER);
		}


	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产伦理精品不卡| 欧美精品一区二区三区久久久| 欧美日韩国产高清一区| 精品日产卡一卡二卡麻豆| 国产精品短视频| 国产尤物一区二区| 欧美日韩在线精品一区二区三区激情 | 日韩一区二区不卡| 国产精品久久国产精麻豆99网站| 日韩电影在线免费观看| 色综合欧美在线| 欧美国产在线观看| 国产一区欧美日韩| 91精品久久久久久久久99蜜臂| 亚洲日本电影在线| 国产91丝袜在线播放0| 精品少妇一区二区三区免费观看| 亚洲国产欧美在线| 欧洲一区在线观看| 亚洲人成网站色在线观看| 国产91综合一区在线观看| 日韩欧美国产综合| 六月婷婷色综合| 日韩免费电影一区| 裸体一区二区三区| 欧美www视频| 激情伊人五月天久久综合| 欧美一级理论性理论a| 视频一区二区三区中文字幕| 欧洲另类一二三四区| 亚洲国产综合人成综合网站| 在线视频综合导航| 亚洲国产精品久久久久婷婷884| 91在线精品一区二区三区| 中文字幕永久在线不卡| a亚洲天堂av| 亚洲精品福利视频网站| 欧美亚洲日本国产| 亚洲bt欧美bt精品777| 宅男在线国产精品| 久草在线在线精品观看| 久久久久久久久久看片| 成人综合激情网| 亚洲日本va在线观看| 欧美日韩在线播放三区四区| 亚洲大片一区二区三区| 日韩一区二区三区在线观看| 久久爱www久久做| 国产精品午夜久久| 色噜噜久久综合| 日本中文在线一区| 国产视频一区二区在线观看| www.成人网.com| 亚洲午夜三级在线| 精品久久久久久久久久久久久久久久久 | 麻豆精品国产传媒mv男同| 亚洲精品一区二区三区精华液| 国产在线看一区| 亚洲柠檬福利资源导航| 欧美日韩成人综合天天影院| 精品一区二区综合| √…a在线天堂一区| 欧美日韩一区国产| 国产成人自拍网| 亚洲一区二区三区中文字幕在线| 777色狠狠一区二区三区| 国产精品一区不卡| 亚洲国产精品一区二区www在线| 日韩久久久精品| 91丨porny丨最新| 精品一区二区三区在线播放| 日韩理论电影院| 欧美精品一区二区三区四区| 在线视频你懂得一区| 精品一区二区三区在线播放| 亚洲乱码一区二区三区在线观看| 日韩一区二区三区视频| 色综合色综合色综合| 国产一区二区三区四区五区入口| 日韩理论片一区二区| 久久一二三国产| 欧美精品高清视频| 色综合久久久久综合| 国产一区二区三区久久久| 首页国产欧美久久| 亚洲人成影院在线观看| 欧美精品一区二区蜜臀亚洲| 欧美在线视频全部完| 成人性视频网站| 美女网站色91| 日韩av一区二区三区| 亚洲伊人伊色伊影伊综合网| 国产精品看片你懂得| 欧美成人a视频| 日韩精品一区二区三区在线| 欧美福利电影网| 欧美日韩午夜精品| 91丝袜美女网| 成人精品gif动图一区| 国产乱人伦偷精品视频不卡| 久久99精品国产麻豆婷婷洗澡| 亚洲aaa精品| 午夜伊人狠狠久久| 亚洲电影第三页| 亚洲一级在线观看| 亚洲成人av电影| 日韩精品久久理论片| 日韩极品在线观看| 奇米综合一区二区三区精品视频| 亚洲第一激情av| 日韩av在线播放中文字幕| 午夜欧美视频在线观看| 亚洲电影第三页| 免费成人小视频| 黄页网站大全一区二区| 不卡的电视剧免费网站有什么| 国产福利一区二区三区在线视频| 国产综合色视频| 国产成人av电影免费在线观看| 国产69精品一区二区亚洲孕妇| 国产综合成人久久大片91| 国产精品一区二区视频| 国产91精品一区二区麻豆网站 | 欧美三区在线视频| 欧美日韩国产123区| 欧美日韩国产天堂| 欧美一级日韩不卡播放免费| 精品国产凹凸成av人导航| 国产午夜精品一区二区| 自拍偷自拍亚洲精品播放| 亚洲成人免费看| 国产一区二区精品久久99| 不卡的av在线| 欧美绝品在线观看成人午夜影视| 欧美一二三四区在线| 国产日韩欧美a| 亚洲精品免费视频| 麻豆极品一区二区三区| 成人av网站免费观看| 欧美午夜精品一区二区三区| 日韩精品一区二区三区视频| 久久中文字幕电影| √…a在线天堂一区| 日韩中文字幕亚洲一区二区va在线| 捆绑调教一区二区三区| av成人动漫在线观看| 91麻豆精品国产自产在线| 国产精品女上位| 视频一区国产视频| 成人av午夜影院| 欧美zozo另类异族| 亚洲人亚洲人成电影网站色| 美女视频网站久久| 色综合天天综合网天天看片| 日韩一级黄色大片| 一区二区三区国产豹纹内裤在线| 久久不见久久见中文字幕免费| 91浏览器在线视频| 久久综合精品国产一区二区三区| 亚洲激情自拍偷拍| 国产电影精品久久禁18| 欧美丰满一区二区免费视频| 欧美韩国日本一区| 精品一区二区三区香蕉蜜桃| 欧美亚洲综合色| 国产精品久久看| 国产呦萝稀缺另类资源| 欧美精品在线一区二区三区| 亚洲人成亚洲人成在线观看图片| 精品综合久久久久久8888| 欧美日韩一区三区| 一区二区三区四区五区视频在线观看| 国产精品自在欧美一区| 91精品福利在线一区二区三区 | 欧美视频一区二区三区在线观看| 久久久精品人体av艺术| 日本91福利区| 欧美高清一级片在线| 亚洲免费观看高清完整版在线观看熊 | 18涩涩午夜精品.www| 国产麻豆一精品一av一免费| 日韩一级在线观看| 午夜精品久久久久久久久久| 在线观看欧美日本| 亚洲欧美色一区| 日本精品一区二区三区高清| 亚洲同性gay激情无套| 成人午夜看片网址| 日本一区二区在线不卡| 国产一区二区精品在线观看| 精品久久人人做人人爰| 精品影院一区二区久久久| 日韩一级欧美一级| 精品无人码麻豆乱码1区2区| 精品嫩草影院久久| 国产一区在线精品| 国产蜜臀av在线一区二区三区| 国产麻豆精品视频| 国产午夜精品一区二区| 国产suv精品一区二区6|