| 
         
     
     | 
     | 
    
  
    | 
    一个聊天室中遇到的问题! | 
   
  
     | 
   
  
     | 
   
  
    | 
     作者:未知  来源:月光软件站  加入时间:2005-5-13 月光软件站  | 
   
  
    这个聊天室是用java写的,其中一部分的源代码是这样的,但是调试运行不了, 还请各位大侠指点:
import java.awt.event.*;
import java.net.*;
import java.io.*;
import java.util.*;
import javax.swing.Timer;
public class AppServer implements Runnable
{
	ServerSocket server;
	Socket fromClient;
	Thread serverThread;
	public AppServer()
	{
		System.out.println("FunChat server start......");
		try
		{
			server=new ServerSocket(1001);
			serverThread=new Thread(this);
			serverThread.start();
		}
		catch(Exception e)
		{
			System.out.println("cannot start the thread:"+e);
		}
	}//end of 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("cannot listen to the client"+e);
		}//end of catch
	}//end of run
}//end of AppServer
class Connect
{
	ObjectOutputStream streamToClient;
	int ctr=0;
	BufferedReader streamFromClient;
	static Vector vector;
	static Vector vctrList;
	String message="";
	static String str=new String("UsrList");
	static
	{
		vector=new Vector(1,1);
		vctrList=new Vector(1,1);
		vctrList.addElement((String)str);
	}
	int verify(String mesg)
	{
		try
		{
			RandomAccessField RAS = new RandomAccessFile("UsrPwd.txt","r");
			int i = 0;
			Sting str = "";
			while((RAS.getFilePointer())!=(RAS.length()))
			{
				str = RAS.readLine();
				if(str.equals(mesg))
				{
					ctr=1;
					break;
					}
				}
				RAS.close();
		}
		catch(Exception e)
		{
			System.out.print("Exception Occurred:"+e);
			}
			return ctr;
		
	}
	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.getFukeOiubter())!=(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;
					}
				}
			}
			 catch(Exception e)
			 {
			 	System.out.print("Exception Occurred:"+e);
			 	}
			 	return chk;
			 
	
		}
		public Connect(Socket inFromClient)
		{
			String msg = "";
			String mesg ="";
			try
			{
				streamFromClient = new BufferedReader(new InputStreamReader(inFromClient.getInputStream()));
				streamToClient = new ObjectOutputStream(inFromClient.getOutputStream());
				msg = streamFromClient.rreadLine();
				if((msg.equals("From Timer")))
				{
					streamToClient.writeObject.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("Ligin denied");
							}
					}
					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);
								}
				}
				catch(Exception e)
				{
					
					System.out.println("cannot get the client stream connect"+ e);
					}
					finally
					{
						try
						{
							inFromClient.close();
							}
							catch(IOException e)
							{
								System.out.println("Exception Occurred:"+e);
								}
						}
			}
		} 
 
  | 
   
  
     | 
   
  
     相关文章:相关软件:  | 
   
   
      |