做了个小练习 发现一个成员变量的疑问

huzhongying 2012-11-02 01:50:31
server端
import java.io.DataInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;


public class Server {
DataInputStream c = null;
String str = null;
public void Lunch(){
ServerSocket ss = null;
Socket s =null;
try {
ss = new ServerSocket(5656);
} catch (IOException e1) {
e1.printStackTrace();
}

try {
while(true){
s = ss.accept();
System.out.println("新的客户端已经连接");
Client a = new Client(s);
new Thread(a).start();
}
} catch (IOException e) {
e.printStackTrace();
}
finally{
try {
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}
class Client implements Runnable{
private Socket s;
Client(Socket s){
this.s = s;
try {
c = new DataInputStream(s.getInputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
public void run() {
try {
while(true){
str = c.readUTF();
System.out.println(str);

}
}
catch (IOException e) {
System.out.println("已断开连接");
}
finally{
try {
if(c != null) c.close();
if(s !=null) s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

}
public static void main(String[] args) {
new Server().Lunch();

}

}

client端
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.net.Socket;
import java.io.*;

public class Client {
DataOutputStream c = null;
TextField t1 = new TextField();
TextArea t2 = new TextArea();
Frame a = new Frame();
String str = null;
Socket s = null;
TextLister tt = new TextLister();
public void add(){
a.add(t1 , "South");
a.add(t2 , "North");
a.pack();
}
public void close(){
a.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
try {
s.close();
c.close();
} catch (IOException e1) {
e1.printStackTrace();
}
System.exit(0);
}
});
}
public void addText(){
t1.addActionListener(tt);
}
public void Lunch(){
this.add();
this.close();
this.addText();
a.setVisible(true);
}
class TextLister implements ActionListener{

public void actionPerformed(ActionEvent e) {
try {
s = new Socket("127.0.0.1" , 5656);
c = new DataOutputStream(s.getOutputStream());
} catch (IOException e1) {
System.out.println("找不到服务器");
}
str = t1.getText();
t2.setText(str);
try {
c.writeUTF(str);
c.flush();
} catch (IOException e1) {
System.out.println("服务器无法接受");
}
t1.setText("");
}
}
public static void main(String[] args) {
new Client().Lunch();
}
}

...全文
114 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
huzhongying 2012-11-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

什么疑问?
[/Quote]
就是如果把上图的第一个黑框里的成员变量变为lunch下的成员变量
运行结果为什么会不同。
LS1firesoar 2012-11-02
  • 打赏
  • 举报
回复
什么疑问?

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧