📄 clientsession.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 + -