java网络编程程序问题,客户端窗体关闭不了

/**再建立TCP客户端程序。由于是本地连接,TCP服务器的IP地址是127.0.0.1,客户端需要通过服务器的8866端口建立连接完成通信,所以在客户端指定要与服务器连... /**
再建立TCP客户端程序。由于是本地连接,TCP服务器的IP地址是127.0.0.1,客户端需要通过服务器的8866端口建立连接完

成通信,所以在客户端指定要与服务器连接的端口号为8866.同样,客户端利用创建的Socket对象来获得输出流对象。通过

输出流向服务器端发送字符串。
*/
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
public class TCPClient extends Frame{
Socket s = null;
DataOutputStream dos = null;
DataInputStream dis = null;
TextField tf = new TextField(40);
List list = new List(6);

public static void main(String[] args){
TCPClient client = new TCPClient();
client.list.add("向服务器端发送的数据:");
client.setTitle("客户端");
client.run();
}

public void run(){
setLocation(400,300); //设置窗体的位置
this.setSize(300,300); //设置窗体的大小
add(tf,BorderLayout.SOUTH);
add(list,BorderLayout.NORTH);
pack();
this.addWindowListener(new WindowAdapter(){ //关闭窗体
public void windowClosing(WindowEvent e){
disconnect();
System.exit(0);
}
});
tf.addActionListener(new MyListener()); //注册事件监听器
setVisible(true);
connect();
}

public void connect(){
try{
s = new Socket("127.0.0.1",8866); //创建一个向服务器端发起连接的Socket对象
dos = new DataOutputStream(s.getOutputStream());
}catch(UnknownHostException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}

public void disconnect(){
try{
dos.close(); //关闭输出流
s.close(); //关闭Socket对象
}catch(IOException e){
e.printStackTrace();
}
}

private class MyListener implements ActionListener{
public void actionPerformed(ActionEvent e){
String s1 = null;
String s2 = null;
String str = tf.getText().trim(); //获取文本框中的内容
list.add(str);
tf.setText(""); //将文本框的内容清空
try{
dos.writeUTF(str); //向输入流中写入数据
dos.flush(); //刷新输出流
}catch(IOException e1){
e1.printStackTrace();
}
}
}
}
展开
 我来答
townsin
2013-09-17 · TA获得超过452个赞
知道小有建树答主
回答量:594
采纳率:50%
帮助的人:509万
展开全部
那是因为没有触发关闭事件的地方,你那里只添加了一个关闭中的事件处理
在main里追加

client.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
追问
需要导入什么包?
追答
不需要任何包啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HDSSHTLL
2013-09-17 · 超过28用户采纳过TA的回答
知道答主
回答量:127
采纳率:0%
帮助的人:65.3万
展开全部
同意楼上 没写这句你关的时候进程还在
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式