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

📄 appserver.java

📁 这是本人在书上找到的项目,是一个网络聊天的程序.
💻 JAVA
字号:
/*
 * AppServer.java
 *
 * Created on 2007年12月2日, 下午10:02
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package appserver;

//导入相关包
import java.awt.event.*;
import java.net.*;
import java.io.*;
import java.util.*;
import javax.swing.Timer;

//AppServer类代码

public class AppServer implements Runnable
{

	ServerSocket server;
	Socket fromClient;
	Thread serverThread;

	public AppServer()
	{
		System.out.print("FunChat聊天服务器启动..........");
		try
		{
			server = new ServerSocket(1001);
			serverThread = new Thread(this);
			serverThread.start();
		}
		catch (Exception e)
		{
			System.out.println("不能启动该线程: " + e);
		}
	}// AppServer结束


	public static void main(String args[])
	{
		new AppServer();

	}

	public void run()
	{
		try
		{
			while (true)
			{
				//监听客户端的请求
				fromClient = server.accept();
				//建立连接对象 
				Connect con = new Connect(fromClient);
			}
		}
		catch (Exception e)
		{
			System.out.println("不能监听客户请求" + e);
		}
	}

}

//connect类代码
class Connect
{
	ObjectOutputStream streamToClient;
	int ctr = 0;

	BufferedReader streamFromClient;
	static Vector vector;
	static Vector vctrList;
	String message = " ";
	static String str = new String("用户列表");

	static
	{
		vector = new Vector(1, 1);
		vctrList = new Vector(1, 1);
		vctrList.addElement((String)str);
	}


	int verify(String mesg)
	{

                      try
                      {
                                    RandomAccessFile RAS = new RandomAccessFile("UsrPwd.txt", "r");
                                    int i = 0;
                                    String str = "";
                                    while ((RAS.getFilePointer()) != (RAS.length()))
                                    {
                                            str = RAS.readLine();
                                            if (str.equals(mesg))
                                            {
                                                    ctr = 1;
                                                    break;

				}
			}
			RAS.close();
		}
		catch (Exception e)
		{
                     System.out.println("由于查取信息时出错");
		}

		return ctr;


	}//verify()函数结束

	int checkFile(String mesg)
	{
		int chk = 1;
		try
		{
			RandomAccessFile RS = new RandomAccessFile("UsrPwd.txt", "r");
			int i = 0;

			String str = "";
			String colon = new String(":");
			int index = ((String)mesg).lastIndexOf(colon);

			String userName = (String)mesg.substring(0, index);
			while ((RS.getFilePointer()) != (int)(RS.length()))
			{
				str = RS.readLine();
				int index1 = ((String)str).lastIndexOf(colon);
				String usrName = (String)str.substring(0, index1);
				if (usrName.equals(userName))
				{
					chk = 0;
					break;

				}
			}//while结束
			RS.close();
		}//try块结束
		catch (Exception e)
		{

		}

		return chk;


	}//chkFile()函数结束


	public Connect(Socket inFromClient)
	{
		//提取客户端的流
		String msg = "";
		String mesg = "";
		try
		{
			streamFromClient = new BufferedReader(new InputStreamReader(inFromClient.getInputStream()));

			streamToClient = new ObjectOutputStream(inFromClient.getOutputStream());

			msg = streamFromClient.readLine();
			//mesg=streamFromClient.readLine();

			if ((msg.equals("Timer")))
			{
				streamToClient.writeObject(vector);
				streamToClient.writeObject(vctrList);
			}
			else if (msg.equals("LoginInfo"))
			{
				msg = streamFromClient.readLine();
				int ver = verify(msg);
				if (ver == 1)
				{
					String colon = new String(":");
					int index = ((String)msg).lastIndexOf(colon);
					String userName = (String)msg.substring(0, index);
					if (!(vctrList.indexOf((String)userName) > 0))
					{
						streamToClient.writeObject("Welcome");
						vctrList.addElement((String)userName);
					}
				}
				else
				{
					streamToClient.writeObject("Login Deny");
				}
			}

			else if (msg.equals("RegisterInfo"))
			{
				msg = streamFromClient.readLine();
				int ret = checkFile(msg);
				if (ret == 0)
					streamToClient.writeObject("User Exists");
				if (ret == 1)
				{
					FileOutputStream out = new FileOutputStream("UsrPwd.txt", true);
					PrintStream p = new PrintStream(out);
					p.println();
					p.println(msg);
					p.close();
					streamToClient.writeObject("Registered");
				}
			}
			else if (msg.equals("User Logout"))
			{
				String remUser = streamFromClient.readLine();
				boolean b = vctrList.removeElement((String)remUser);
			}
			else
			{

				message = message + msg;
				vector.addElement((String)message);
				streamToClient.writeObject(vector);

			}

		}//end of try
		catch (Exception e)
		{
			System.out.println("无法获取客户端的流对象 " + e);
		}

		finally
		{
			try
			{
				inFromClient.close();
			}
			catch (IOException e)
			{ }
		}
	}//Connect()函数结束
}

⌨️ 快捷键说明

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