//这里是登陆窗口,用户成功登陆后,我new一个聊天窗口,把是谁登陆的帐号传过去,
MyFrame frame = new MyFrame(txtUser.getText());
fram.setVisible(false);//这是聊天窗口
public static String user="客户端"//user来保存当前是哪个用户登陆的,帐号
public MyFrame(String name) {
try {
user = name;
System.out.println(user);//这里打印的是txtUser.getText()传过来的值 已经传把帐号传过来了,
jbInit();//这是显示聊天窗口的,
connect();//这是连接服务器方法
this.setVisible(true);
} catch (Exception exception) {
exception.printStackTrace();
}
}public static String user = "服务器";//user用来保存是当前是哪个可户端连到服务器,然后放到集合里
public void connect(){
boolean started = false;
try {
ss = new ServerSocket(1080);
started = true;
}catch(BindException e){
System.out.println("端口已被使用了,请关闭相关程序再运行!");
System.exit(0);
}catch(IOException e){
e.printStackTrace();
}
try{
//服务器成功开启后,不断接受来自客户端的连接
while (started) {
s = ss.accept();//等待客户端连接
user = ff.user;//连接成功后 把客户端user的值,附值给服务器,然后保存到集合做为在线用户,
System.out.println("连接成功");
/*当客户端连接成功后,为每个连接设置一个单独的线程,将当前连接服务器的
客户端套接字传入线程类,已便建立输入,输出流处理收发信息*/
System.out.println(user);//这里打印服务器当前的user,应该是附值以后的user,应该打印txtUser.Text();为什么这里打印的是"客户端",???
Client c = new Client(s);
arr.add(c);
new Thread(c).start();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
问题是 为什么,客户端的user在构造方法里面已经被附值,而服务器打印的是客户端初始化的值??
还有就是,第一次我客户端user初始化值是:"客户端",登陆成功,服务器打印"客户端",第2次我把客户端user初始化的值
该成"客户端1",然后登陆,服务器打印的还是:"客户端".(服务器一直开着)
什么地方出错了吗?
MyFrame frame = new MyFrame(txtUser.getText());
fram.setVisible(false);//这是聊天窗口
public static String user="客户端"//user来保存当前是哪个用户登陆的,帐号
public MyFrame(String name) {
try {
user = name;
System.out.println(user);//这里打印的是txtUser.getText()传过来的值 已经传把帐号传过来了,
jbInit();//这是显示聊天窗口的,
connect();//这是连接服务器方法
this.setVisible(true);
} catch (Exception exception) {
exception.printStackTrace();
}
}public static String user = "服务器";//user用来保存是当前是哪个可户端连到服务器,然后放到集合里
public void connect(){
boolean started = false;
try {
ss = new ServerSocket(1080);
started = true;
}catch(BindException e){
System.out.println("端口已被使用了,请关闭相关程序再运行!");
System.exit(0);
}catch(IOException e){
e.printStackTrace();
}
try{
//服务器成功开启后,不断接受来自客户端的连接
while (started) {
s = ss.accept();//等待客户端连接
user = ff.user;//连接成功后 把客户端user的值,附值给服务器,然后保存到集合做为在线用户,
System.out.println("连接成功");
/*当客户端连接成功后,为每个连接设置一个单独的线程,将当前连接服务器的
客户端套接字传入线程类,已便建立输入,输出流处理收发信息*/
System.out.println(user);//这里打印服务器当前的user,应该是附值以后的user,应该打印txtUser.Text();为什么这里打印的是"客户端",???
Client c = new Client(s);
arr.add(c);
new Thread(c).start();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
问题是 为什么,客户端的user在构造方法里面已经被附值,而服务器打印的是客户端初始化的值??
还有就是,第一次我客户端user初始化值是:"客户端",登陆成功,服务器打印"客户端",第2次我把客户端user初始化的值
该成"客户端1",然后登陆,服务器打印的还是:"客户端".(服务器一直开着)
什么地方出错了吗?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货