Socket编程问题 我用Swing画了后台 前台 服务器三个模块 用MVC实现的 我把M当成客户端向服务器发送信息并做处理后台和前台一样 在M里有N多功能 我是在每个功能里new的一个Socket怎么让一个人登录以后 一直保持一个socket 而不是每调一个方法就new一个?仅限于前台如果一个人在这里登录了,不退出就不能再其他地方登录,要怎么解决? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给每个方法传一个socket参数;在用户表里加个字段,判断登录状态 抛出software caused connection abort:socket write error怎么回事?登陆时候没事 在调用Select方法时 就报错了public class AtmModel { private AtmLogin atmLogin; private static Socket socket; private InputStream is; private OutputStream os; private ObjectInputStream ois; private ObjectOutputStream oos; private AccountInfo aif; private TransferData tfd; public AtmModel() { } S方法是点登陆按钮时调用的 public void S() { try { socket = new Socket("127.0.0.1", 9900); os = socket.getOutputStream(); oos = new ObjectOutputStream(os); is = socket.getInputStream(); ois = new ObjectInputStream(is); } catch (UnknownHostException ex) { Logger.getLogger(AtmModel.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(AtmModel.class.getName()).log(Level.SEVERE, null, ex); } } public void addAtmLogin(AtmLogin atmLogin) { this.atmLogin = atmLogin; } //登陆验证 public void addLoginChecking(String id, String pwd) { aif = new AccountInfo(id, pwd); tfd = new TransferData(3, aif); try { oos.writeObject(tfd); tfd = (TransferData) ois.readObject(); if (tfd.getCmd() == 301) { atmLogin.cutPage("card3"); atmLogin.noticLoginClear(); } else { JOptionPane.showMessageDialog(atmLogin, "登陆失败"); } } catch (Exception e) { e.printStackTrace(); } } public void Select() { aif = new AccountInfo(); tfd = new TransferData(4, aif); try { oos.writeObject(tfd); tfd = (TransferData) ois.readObject(); if (tfd.getCmd() == 401) { atmLogin.cutPage("card4"); atmLogin.showMoeny(((AccountInfo) tfd.getData()).getBalance()); } else { JOptionPane.showMessageDialog(atmLogin, "查询失败"); } } catch (Exception e) { e.printStackTrace(); } } 急啊,帮帮忙,大家 监听器接口的实现方法放在哪个类中好?怎么理解的?????在线等,谢谢!! 简单的问题 请教一下,jsp与javascript有什么区别?谢谢! Double java格式化字符串 月份编辑 请问哪里有基于Linux的java编辑器或开发工具下载? 有没有在学JAVA的朋友交我这个朋友呀???? 谁有Visual Age for Java 企业版3.5.3 Update 会C++和java的!求助啦! 求解答数组 不是很明白 高手的讲下谢谢
在用户表里加个字段,判断登录状态
public class AtmModel { private AtmLogin atmLogin;
private static Socket socket;
private InputStream is;
private OutputStream os;
private ObjectInputStream ois;
private ObjectOutputStream oos;
private AccountInfo aif;
private TransferData tfd; public AtmModel() {
}
S方法是点登陆按钮时调用的
public void S() {
try {
socket = new Socket("127.0.0.1", 9900);
os = socket.getOutputStream();
oos = new ObjectOutputStream(os);
is = socket.getInputStream();
ois = new ObjectInputStream(is);
} catch (UnknownHostException ex) {
Logger.getLogger(AtmModel.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(AtmModel.class.getName()).log(Level.SEVERE, null, ex);
}
} public void addAtmLogin(AtmLogin atmLogin) {
this.atmLogin = atmLogin;
} //登陆验证
public void addLoginChecking(String id, String pwd) {
aif = new AccountInfo(id, pwd);
tfd = new TransferData(3, aif); try {
oos.writeObject(tfd);
tfd = (TransferData) ois.readObject(); if (tfd.getCmd() == 301) {
atmLogin.cutPage("card3");
atmLogin.noticLoginClear();
} else {
JOptionPane.showMessageDialog(atmLogin, "登陆失败");
}
} catch (Exception e) {
e.printStackTrace();
}
} public void Select() {
aif = new AccountInfo();
tfd = new TransferData(4, aif); try {
oos.writeObject(tfd); tfd = (TransferData) ois.readObject(); if (tfd.getCmd() == 401) {
atmLogin.cutPage("card4");
atmLogin.showMoeny(((AccountInfo) tfd.getData()).getBalance());
} else {
JOptionPane.showMessageDialog(atmLogin, "查询失败");
} } catch (Exception e) {
e.printStackTrace();
}
}