⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 asdasdas.java

📁 这是一个仿QQ的聊天程序
💻 JAVA
字号:
package com.cloudcloud.soft;
import java.net.*;
import java.util.*;

public class asdasdas 
{
	public static void main(String[] args)
	{
		try
		{

			Hashtable ht = new Hashtable();

			ServerSocket ss = new ServerSocket(8000);

			azsdasd si = new azsdasd();
			si.setServerDocs("hewei的QQ服务器已经启动。");
			while(true)
			{
				si.setVisible(true);
				si.setServerDocs("服务器正在8000端口监听......");
				Socket s = ss.accept();
				si.setServerDocs("服务器已经和客户端建立连接。");
				si.setClientDocs(s.getInetAddress().toString().substring(1) + ":" + s.getPort() + "连接到服务器。");
				MyService mys = new MyService();
				mys.setServerInfo(si);
				mys.setSocket(s);
				mys.setHashtable(ht);
				mys.start();
			}
		}
		catch(Exception e)
		{
			
		}		
	}
}

class MyService extends Thread
{
	Socket s;
	Hashtable ht;
	azsdasd si;
	asdasd member;

	public void setServerInfo(azsdasd si)
	{
		this.si = si;
	}

	public void setHashtable(Hashtable ht)
	{
		this.ht = ht;
	}

	public void setSocket(Socket s)
	{
		this.s = s;
	}

	private void setMemLog(String num)
	{
		MemberLog ml = new MemberLog();
		ml.setQQNum(num);
		ml.setIP(s.getInetAddress().toString().substring(1));
		ml.setLoginTime(new qwqw().getDateAndTime());
		ml.setStatus("在线");
		ml.setLogtime(new Date().getTime());
		si.putMembetToTable(ml);
	}

	private void apply(asdsss ms)
	{
		si.setClientDocs("客户");

		String info = ms.readLine();

		member = new asdasd();
		member.setName(info.split("==QQ==")[0]);
		member.setPwd(info.split("==QQ==")[1]);
		member.setHeadNum(Integer.parseInt(info.split("==QQ==")[2]));
		member.setSex(info.split("==QQ==")[3]);
		member.setAge(Integer.parseInt(info.split("==QQ==")[4]));
		member.setEmail(info.split("==QQ==")[5]);
		member.setShow(info.split("==QQ==")[6]);

		si.setServerDocs("......");
		asdasdasd mydb = new asdasdasd("files/Database.ini");

		si.setServerDocs("......");
		mydb.insertData("INSERT INTO MEMBER VALUES('" + member.getPwd() + "', '" + member.getName() + "', " + member.getHeadNum() + ", '" + member.getSex() + "', " + member.getAge() + ", '" + member.getEmail() + "', '" + member.getShow() + "')");

		si.setServerDocs("......");
		String QQNum = mydb.getOneData("SELECT MEMBER_ID FROM MEMBER WHERE MEMBER_NAME = '" + member.getName() + "' AND MEMBER_PWD = '" + member.getPwd() + "'");

		si.setServerDocs("......");
		ms.println(QQNum);
		s = null;
	}

	private void login(asdsss ms)
	{
		si.setClientDocs(".");

		si.setServerDocs("......");
		String uandp = ms.readLine();
		String Num = uandp.split("==CloudQQ==")[0];
		String Pwd = uandp.split("==CloudQQ==")[1];
		

		si.setServerDocs("." + Num + "......");
		asdasdasd mydb = new asdasdasd("files/Database.ini");
		String isNull = mydb.isNull("SELECT * FROM MEMBER WHERE MEMBER_ID=" + Num + " AND MEMBER_PWD='" + Pwd + "'");
		
		si.setServerDocs("毕");
		if(isNull.equals("NOTNULL"))
		{
			si.setServerDocs(Num + "..");

			ms.println("CloudQQ_OK");

			si.setServerDocs("..." + Num + "......");
			ArrayList userData = new ArrayList();
			userData = mydb.getAllDataToString("SELECT * FROM MEMBER WHERE MEMBER_ID = " + Num );
			ListIterator li = userData.listIterator();
			String sep = "==QQ==";
			String mass = "";
			while(li.hasNext())
			{
				mass = mass + (String)li.next() + sep;
			}
			si.setServerDocs("..." + Num + "......");
			ms.println(mass);
			try 
			{
				Thread.sleep(2000) ;
			}
			catch (InterruptedException e)
			{
				e.printStackTrace();
			}

			Enumeration em = ht.elements();
			si.setServerDocs(".." + Num + "......");
			while(em.hasMoreElements())
			{
				Socket othersSocket = (Socket)em.nextElement();
				asdsss otherms = new asdsss(othersSocket);
				otherms.println("USERS==com==" + mass);
			}

			em = ht.keys();
			si.setServerDocs(".." + Num + "......");
			while(em.hasMoreElements())
			{
				String otherUsers = (String)em.nextElement();
				userData = new ArrayList();
				userData = mydb.getAllDataToString("SELECT * FROM MEMBER WHERE MEMBER_ID = '" + otherUsers + "'");
				li = userData.listIterator();
				mass = "";
				while(li.hasNext())
				{
					mass = mass + (String)li.next() + sep;
				}
				ms.println("USERS==com==" + mass);
			}

			si.setServerDocs(".." + Num + "......");
			ht.put(Num,s);
			si.setClientDocs(Num + "。");

			setMemLog(Num);
			si.setServerDocs("......");
			try
			{
				while(true)
				{
					mass = ms.readLine();
					if(mass.equals(""))
					{
						break;
					}
					else if(mass.split("==com==")[0].equals("CHAT"))
					{
						String chatInfo = mass.split("==com==")[1];
						String fromID = chatInfo.split("==QQ==")[0];
						
						String toID = chatInfo.split("==QQ==")[1];
						Socket ts = (Socket)ht.get(toID);
						if(ts != null)
						{
							asdsss tms = new asdsss(ts);
							tms.println(mass);
							si.setClientDocs(fromID + "向" + toID + "。");
						}
						else
						{
							si.setClientDocs(fromID + "向" + toID + "。");
							si.setServerDocs(toID +"已经退出。");
						}
					}
					else if(mass.split("==com==")[0].equals("LOGOUT"))
					{
						String fromID = mass.split("==com==")[1];
						si.setClientDocs(fromID + "。");

						si.setServerDocs(".." + fromID + ".。");
						ht.remove(fromID);
	
						em = ht.elements();
						si.setServerDocs("." + fromID + "......");
						while(em.hasMoreElements())
						{
							Socket othersSocket = (Socket)em.nextElement();
							asdsss otherms = new asdsss(othersSocket);
							otherms.println("REMOVE_USERS==com==" + fromID);
						}
						si.setClientDocs(fromID + "。");

						si.moveMemberFromTable(fromID);
					}
				}
			}
			catch(Exception e)
			{
				
			}
			
		}
		else if(isNull.equals("NULL"))
		{
			si.setServerDocs(Num + "..");
			ms.println("CloudQQ_ERR");
		}
		else if(isNull.equals("ERROR"))
		{
			si.setErrDocs("无法连接到数据库。");
			ms.println("CloudQQ_DATABASE_ERR");
		}
	}
	public void run()
	{
		asdsss ms = new asdsss(s);
		String operation = ms.readLine();

		if(operation.equals("APPLY"))
		{
			this.apply(ms);
		}

		else if(operation.equals("LOGIN"))
		{
			this.login(ms);
		}
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -