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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? server.java

?? 黑白棋123 黑白棋456 大學(xué)畢業(yè)設(shè)計 做很好
?? JAVA
字號:
/* ****************************************************************
 *                                        
 *       Server.java                      
 *                                        
 *            Server 類 ,主機(jī)端運行, 負(fù)責(zé)監(jiān)聽及客戶端的管理工作     
 *                                          
 *************************************************************** */

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

public class Server
{
	ServerSocket s;
	ConnectThread m_connect[];
	byte m_count;
	int MAXCLIENT;
	
	String msou;
	String mobj;
	int mtype;
	String mtxt;
	
	public Server()
	{
		Socket socket;
		socket = null;
		m_count=0;
		MAXCLIENT = 10;
		
		m_connect = new ConnectThread[MAXCLIENT+1];
		int i;
		for(i=0;i<MAXCLIENT;i++)
		{
			m_connect[i]=null;
		}
		
		try 
		{
			s = new ServerSocket(3000);
		}
		catch(Exception e)
		{
			System.out.println("Error in listener newing:"+e);
			return;
		}
		System.out.println("Server is listening ...... ");
		
		while(true)
		{
			try
			{
				socket = s.accept();
			}
			catch (Exception e)
			{
				System.out.println("Error in accepting  : "+e);
			}
			
			if ( socket!= null )
			{
					InitConnect(socket);
			}
			else System.out.println("Error in initing ");

		}
	}
	
	public String WriteMsg(int type,String obj,String txt)
	{
		String buf = new String("MSG");
		Integer _type = new Integer(type);
		buf +=_type.toString();
		buf += '\\';
		buf += obj;
		buf += '\\';
		
		buf += txt;
		return buf;
	}

	public void DealInput(String str,ConnectThread sock)
	{
		System.out.print("    Receive Message:");
		System.out.println(str);
		
		String head = new String();
		String obj ;
		int type;
		int i = 0;
		String txt = new String();
		int len = str.length();
		
		
		//數(shù)據(jù)預(yù)處理
		//消息結(jié)構(gòu)
		// MSG /type (byte), /obj (String) , /0 ,/text (String)
		type = 0;
		obj = "";
		txt = "";

		char[] d = new char[str.length()];
		 str.getChars(0,str.length()-1,d,0);
		
		i=0;
		head = new String ();
		
		if (len < 5 )
			return;
		
		head="";
		head+=str.charAt(0);
		head+=str.charAt(1);
		head+=str.charAt(2);
	
		if (!head.equals("MSG")) 
		{
			System.out.print("     Receive Error Message : ");
			System.out.println(str);
			return;
		}
		
		
		i=3;
		String _type = new String();
		while(str.charAt(i) != '\\')
		{
			_type+=str.charAt(i);
			i++;
		}
		i++;
		type = (Integer.decode(_type)).intValue();
		
		while(str.charAt(i) != '\\')
		{
			obj+=str.charAt(i);
			i++;
		}
		i++;
		
		while(i<len)
		{
			txt+=str.charAt(i);
			i++;
		}
	
	//	txt = str.substring(5,str.length());
	
		// msg type
		// 1 要求當(dāng)前所有登陸用戶名稱
		// 2 發(fā)送當(dāng)前所有登陸用戶名稱
		// 3 向主機(jī)發(fā)送自己的名字(新登陸)
		// 4 向所有客戶發(fā)送新登陸著的名字
		// 5 客戶斷開連接
		// 6 通知所有客戶端已斷開的客戶名
		// 7 發(fā)送挑戰(zhàn)請求 (執(zhí)黑)
		// 8 發(fā)出挑戰(zhàn)請求 (執(zhí)白)
		// 9 接受挑戰(zhàn)回應(yīng)
		// 10 拒絕挑戰(zhàn)回應(yīng)
		// 11 服務(wù)器已滿
		// 12 新登陸名字沖突
		// 13 不存在的用戶(已斷開連接)
		
		// 20 chat
		// 21 走棋
		// 22 密談
		
		String buf;
		Integer _list;
		
		{
			System.out.println(str);
			
			System.out.print(" Recieve msg , type : ");
			System.out.println(type);
			
			System.out.print("obj : ");
			if (obj.equals ( "" )) System.out.println("null");
			else System.out.println(obj);
		
			
			System.out.print("正文 : ");
			if (txt .equals("") ) System.out.println("null");
			else System.out.println(txt);
			
		}
		
		String msg;
		switch(type)
		{
		case 1:
			{
				//要求當(dāng)前所有登陸用戶名稱
				buf= new String();
				
				for(i=0;i<MAXCLIENT;i++)
				{
					if (m_connect[i]!=null)
					{
						_list = new Integer(i);
						buf+=_list.toString();
						buf+='\\';
						buf+= m_connect[i].m_name;
						buf+='\\';
					}
				}
				msg = this.WriteMsg(2,"",buf.toString());
				sock.Send(msg);
				break;
			}
		case 2:
			break;
		case 3:
			{
				//接收到客戶端發(fā)送自己名字
				for(i=0;i<MAXCLIENT;i++)
					if (m_connect[i] != null )
					if (m_connect[i].m_name.equals(txt))
					{
						//名字已被使用,拒絕連接
						System.out.println("Name has been used , refuse connect");
						msg = this.WriteMsg(12,"","");	
						sock.Send(msg);
						sock.quit = true;
						m_connect[sock.m_id] = null;
					//	sock.stop();
						try
						{
							sock.m_input.close();
							sock.m_output.close();
							sock.m_socket.close();
						}
						catch(IOException e)
						{
							System.out.println("Error at close socket : " +e);
						}
						
						m_count--;
						return;
					}
				
				m_connect[sock.m_id].m_name = txt;
			
				//發(fā)送所有登陸著的名字			
				
				buf = "";
				for(i=0;i<MAXCLIENT;i++)
				{
					if (m_connect[i]!=null && i != sock.m_id )
					{
						_list = new Integer(i);
						buf+=_list.toString();
						buf+='\\';
						buf+= m_connect[i].m_name;
						buf+='\\';
					}
				}
				msg = this.WriteMsg(2,"",buf.toString());
				sock.Send(msg);
			
				// 將新名字發(fā)給所有用戶
				buf = "";
				_list = new Integer(sock.m_id);
				buf+=_list.toString();
				buf+='\\';
				buf+=txt;
				msg = WriteMsg(4,"",buf);
				for(i=0;i<MAXCLIENT;i++)
				{
					if ( m_connect[i] != null && i != sock.m_id )
						m_connect[i].Send(msg);
				}
				break;
			}
		case 5:
			{	
				this.Disconnect(sock);
				break;	
			}

		case 10:
			
		case 4:
		
		case 6:
		case 7:
		case 8:
		case 9:
		case 20:
		case 21:
		default :
			{	//轉(zhuǎn)發(fā)
				if (obj.equals( "" ))
				{
					//向所有客戶端發(fā)送
					System.out.println("Begin transport to all user");
					for(i=0;i<MAXCLIENT ; i++)
					{
						if ( m_connect[i] != null && i != sock.m_id ) 
						{
							System.out.print(" Transport Data from ");
							System.out.print(sock.m_name);
							System.out.print (" to ");
							System.out.print (m_connect[i].m_name);
							System.out.print ( "  :  ");
							System.out.println(str);

							m_connect[i].Send(str);
						}
					}
				}
				else
				for (i = 0; i<MAXCLIENT ; i++)	
				if(m_connect[i] != null)
				if( obj.equals( m_connect[i].m_name ) )
				{
					System.out.println("Begin transport to current user");
					System.out.print(" Transport Data from ");
					System.out.print(sock.m_name);
					System.out.print (" to ");
					System.out.print (m_connect[i].m_name);
					System.out.print ( "  :  ");
					System.out.println(str);

					m_connect[i].Send(str);
				}
				else
					System.out.println("Invalid user  : " + obj); 
				break;
			}

		}
				
	}
	
	public void InitConnect(Socket socket)
	{
		ConnectThread c = new ConnectThread(this,m_count,socket);
		if(m_count>= MAXCLIENT)
		{
			//客戶數(shù)量已達(dá)到上限,拒絕連接
			String msg = this.WriteMsg(11,"","");
			c.Send(msg);
			try
			{
				c.m_input.close();
				c.m_output.close();
				c.m_socket.close();
			}
			catch(IOException e)
			{
				System.out.println( " Error at closing socket : " +e);
				return;
			}
			System.out.println(" A client connect to server , but server is full , refused .");
			return;
		}
		
		
		int i;
		for(i=0;i<MAXCLIENT;i++)
		if(m_connect[i] == null )
		{
			m_connect[i] =c;
			c.m_id = i;
			break;
		}
		c.start();
		System.out.print("Receive Connect ,list ");
		System.out.println(i);
		
		m_count++;
	}
	
	
	public static void main(String args[])
	{
		new Server();
	}
	
	
	public void Disconnect(ConnectThread sock)
	{
		int i;
				
		sock.quit = true;
		m_connect[sock.m_id] = null;
		
		System.out.println("Disconnect with "+ sock.m_name);

		// 通知其他客戶
		Integer _id = new Integer(sock.m_id);
		String buf =new String();
		buf+= _id.toString();
		String msg = this.WriteMsg(6,"",buf.toString());

		for (i=0;i<MAXCLIENT;i++)
		{
			if (m_connect[i]!= null )
				m_connect[i].Send(msg);
		}
		m_count --;
	}
}


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品第1页| 欧美一区二区黄色| 亚洲一区在线看| 欧美一区二区视频在线观看| 久久99国产精品麻豆| 国产精品美女一区二区在线观看| 国产精品一区二区黑丝| ...中文天堂在线一区| 欧美视频在线观看一区二区| 国内外成人在线| 亚洲精品菠萝久久久久久久| 欧美一卡二卡三卡| 不卡视频在线看| 日本中文字幕一区| 欧美xxxx在线观看| 在线一区二区三区四区五区| 激情综合一区二区三区| 一区二区三区av电影| 2020国产精品久久精品美国| 国产a区久久久| 国产真实乱偷精品视频免| 精品久久五月天| 欧美系列一区二区| 成人黄色网址在线观看| 免费观看在线色综合| 国产精品久久三区| 精品国产三级a在线观看| 91国偷自产一区二区开放时间 | 亚洲免费高清视频在线| 欧美乱妇20p| 国产成人免费视频网站| 日韩精品久久久久久| 国产精品久久久久一区二区三区| 欧洲视频一区二区| 国产98色在线|日韩| 美女在线一区二区| 国产精品久久久久永久免费观看| 日韩一级完整毛片| 欧美午夜一区二区三区免费大片| 高清不卡一区二区| 亚洲bt欧美bt精品777| 中文字幕制服丝袜成人av| www国产精品av| 欧美人伦禁忌dvd放荡欲情| 91在线云播放| 国产麻豆午夜三级精品| 蜜桃久久久久久| 亚洲国产裸拍裸体视频在线观看乱了| 中文字幕国产一区| 精品国产一区二区精华| 欧美精品免费视频| 欧美日韩一本到| 欧美亚洲综合一区| 在线亚洲一区二区| 不卡大黄网站免费看| 国产精品综合一区二区三区| 久久97超碰色| 精品无码三级在线观看视频 | 1000精品久久久久久久久| 国产欧美一区二区三区在线老狼| 精品国产人成亚洲区| 久久综合五月天婷婷伊人| 日韩欧美国产一区二区三区| 91精品国产黑色紧身裤美女| 欧美精品久久久久久久久老牛影院| 9久草视频在线视频精品| 99这里只有精品| av中文字幕一区| 91视频国产资源| 欧美亚洲图片小说| 欧美日韩精品一区二区三区蜜桃 | 国产精品美女久久久久av爽李琼 | 91色乱码一区二区三区| 欧美日韩午夜影院| 精品国产伦理网| 中文字幕免费观看一区| 夜夜精品浪潮av一区二区三区| 日韩中文字幕1| 丰满亚洲少妇av| 欧美色综合影院| 国产性天天综合网| 亚洲综合无码一区二区| 久久国产精品一区二区| 99精品热视频| 精品乱人伦小说| 亚洲精品视频一区二区| 久久狠狠亚洲综合| 色视频成人在线观看免| 日韩精品在线一区二区| 亚洲女子a中天字幕| 狠狠色综合日日| 欧美在线999| 国产亚洲精品bt天堂精选| 偷窥少妇高潮呻吟av久久免费| 国产精品一区二区久久不卡 | 精品美女在线观看| 亚洲综合激情网| 国产a久久麻豆| 日韩欧美精品在线| 亚洲国产精品一区二区尤物区| 国产成人av影院| 日韩免费在线观看| 亚洲综合丁香婷婷六月香| 粉嫩一区二区三区性色av| 欧美一级久久久久久久大片| 亚洲精选视频在线| 国产69精品久久久久毛片 | 亚洲欧洲国产日韩| 精品一区二区三区的国产在线播放 | 亚洲激情五月婷婷| 国产成人av电影| 日韩精品一区二区三区老鸭窝| 亚洲一二三四在线| 99国内精品久久| 欧美激情一区二区在线| 精一区二区三区| 91精品国产入口在线| 亚洲自拍偷拍网站| 色狠狠色狠狠综合| 中文字幕日韩av资源站| 国产成人在线看| 久久免费电影网| 久久精品国产免费| 欧美成人在线直播| 日韩黄色免费电影| 911精品产国品一二三产区| 亚洲精品国久久99热| 91在线精品秘密一区二区| 中文字幕av一区二区三区高| 国产精品白丝jk黑袜喷水| 久久人人爽爽爽人久久久| 久久精品二区亚洲w码| 日韩午夜精品视频| 日本系列欧美系列| 欧美一区二区三区白人| 男人的j进女人的j一区| 日韩三级精品电影久久久| 青青草97国产精品免费观看| 欧美精品国产精品| 免费三级欧美电影| 日韩欧美中文字幕一区| 免费高清视频精品| 精品国产一区二区三区久久久蜜月| 国内偷窥港台综合视频在线播放| www成人在线观看| 成人做爰69片免费看网站| 国产精品久久久久久久第一福利| 91亚洲永久精品| 亚洲国产乱码最新视频| 欧美一区二区视频网站| 国产一区二区三区免费| 国产精品你懂的在线| 91精品福利视频| 日韩精品电影一区亚洲| 欧美mv和日韩mv的网站| 成人网男人的天堂| 亚洲欧美在线视频观看| 色噜噜狠狠色综合欧洲selulu| 亚洲图片一区二区| 91精品国产黑色紧身裤美女| 国产一区二区精品久久91| 久久久久久黄色| 91美女蜜桃在线| 日本aⅴ免费视频一区二区三区| 精品日韩99亚洲| 91香蕉视频污| 日本不卡123| 国产精品国产三级国产三级人妇 | 91精品1区2区| 老司机精品视频一区二区三区| 久久久久国产成人精品亚洲午夜| 成人h动漫精品一区二区| 一区二区三区不卡视频在线观看| 日韩午夜中文字幕| 不卡免费追剧大全电视剧网站| 亚洲国产精品一区二区久久| 精品国产污污免费网站入口| 99在线精品一区二区三区| 午夜不卡av在线| 亚洲国产成人午夜在线一区 | 亚洲精品在线电影| 99久久精品久久久久久清纯| 日本欧美一区二区| 中文字幕中文在线不卡住| 欧美一区二区三区免费观看视频| 成人午夜碰碰视频| 日韩中文字幕av电影| **欧美大码日韩| 日韩欧美在线观看一区二区三区| 99在线精品视频| 韩国女主播一区| 午夜欧美视频在线观看| 国产精品视频一二三| 91精品国产乱| 欧美影院一区二区三区| 国产91精品精华液一区二区三区 | 91精品国产一区二区三区香蕉| av在线不卡电影| 国产精品一区二区三区99| 视频一区中文字幕|