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

📄 clientsession.java

📁 文件共享虚拟社区,可以实现上传下载聊天等多种信息交互.
💻 JAVA
字号:
/*
 * 创建日期 2005-9-7
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
package fsc.server.modules;

/**
 * @author 清澄
 *
 * TODO 要更改此生成的类型注释的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */

import fsc.util.*;
import fsc.models.*;
import fsc.models.exceptions.*;


import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.*;
import java.sql.SQLException;


public class ClientSession extends Thread{
	Socket client;
	private DataOutputStream dout;
	private DataInputStream din;
	UserInfoModel userInfo=null;
	
	public ClientSession(Socket c) throws IOException
	{
		super();
		System.out.println("a session start!");		
		client=c;
		getIOStreams();	
		
	}

	public void getIOStreams() throws IOException
	{
		din=new DataInputStream(client.getInputStream());
		dout=new DataOutputStream(client.getOutputStream());
	}
	
	public void closeIOStreamsAndDisconnect()
	{
		try {
			din.close();
			dout.close();
			client.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
	}
	
	public void run()
	{
		try{
			String info;
			while((info=din.readUTF())!=null)
			{
				StringProcessor sp= new StringProcessor(info);
				String tag=sp.getLine();
				String content= sp.getContent();
				//debug
				//System.err.println("firstLine:"+tag);
				//System.err.println("content:"+content);
				
				System.err.println(tag);
				
				if(tag.equals("bye"))
				{
					//LogoffModule.logoff(userInfo.getUserName());
					break;
				}
				
				else if(tag.equals(LoginModel.TAG))
				{
					
					LoginModel lm=null;
					try {
						lm = new LoginModel(content);
					} catch (InvalidUserNameException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (InvalidPassswordException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					
					LoginResultModel ret = null;
					try {
						ret = LoginModule.login(lm);
					} catch (ClassNotFoundException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					} catch (SQLException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
					dout.writeUTF(ret.toString());
					
					if(ret.getLoginResult().equals("YES"))
					{
						userInfo=UserInfoModule.getUserInfo(lm.getUserName());	
					}else		//wrong password!!
					{
						closeIOStreamsAndDisconnect();
					}
					return;
						
				}
				
				
				else if(tag.equals(RegisterModel.TAG))
				{
					RegisterModel rm=null;
					try {
						rm= new RegisterModel(content);
					} catch (Exception e) {
						// TODO Auto-generated catch block
						System.err.println(e.getMessage());
						
					}
					
					RegisterResultModel ret=RegisterModule.register(rm);
					dout.writeUTF(ret.toString());

					
					
				}
				else if(tag.equals("QUERY_USER_MODEL"))
				{
					//QueryUserModel qm=new QueryUserModel();
					//qm.fromString(content);
				//	System.err.println(qm.getUsername()+'\n');
				}
				else
				{
					System.err.println("未知数据");
				}
		}
	}
	catch(IOException ex)
	{
		System.err.println("客户端断开连接");
		//ex.printStackTrace();
		closeIOStreamsAndDisconnect();
	}
}
	
	
	public static void main(String[] args) {
	}
}

⌨️ 快捷键说明

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