求教编程问题

Rio_bmw 2013-01-08 06:49:33
编了一个聊天系统的雏形 目前问题是在向客户端输入字符时,服务器端没输出同样的字符 编译是没错的
求大家帮我看看什么地方错了
客户端
package njyd.dsy.chat;

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;

public class ChatClient extends Frame{

DataOutputStream dos = null;
Socket s = null;
TextField tfText = new TextField();
TextArea taContent = new TextArea();
public static void main(String[] args) {
new ChatClient().launchFrame();
}

public void launchFrame() {
setLocation(300,300);
setSize(500,500);
add(tfText,BorderLayout.SOUTH);
add(taContent,BorderLayout.NORTH);
pack();
this.addWindowListener( new WindowAdapter() {


@Override
public void windowClosing(WindowEvent e) {
disconnect();
System.exit(0);
}

});
tfText.addActionListener(new TFListener());
setVisible(true);
connect();
}

public void disconnect() {
try {
dos.close();
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}

public void connect() {
try {
s = new Socket("127.0.0.1",8888);
dos = new DataOutputStream(s.getOutputStream());
System.out.print("a Server connected");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

private class TFListener implements ActionListener{ /*响应enter 输入字符 */

@Override
public void actionPerformed(ActionEvent e) {
String str = tfText.getText().trim();
taContent.setText(str);
tfText.setText("");

try {
dos.writeUTF(str);
dos.flush();
} catch (IOException e1) {
e1.printStackTrace();
}
}


}
}
服务器端
package njyd.dsy.chat;

import java.io.*;
import java.net.*;

public class ServerChat {

public static void main(String[] args) {
boolean started = false;
DataInputStream dis = null;
ServerSocket ss = null;
Socket s = null;
try {
ss = new ServerSocket(8888);
} catch(BindException e){
System.out.println("端口使用中");
} catch(IOException e){
e.printStackTrace();
}

try{
started = true;
while(started) {
boolean flag = false;
s = ss.accept();
System.out.print("a Client connected!");
flag = true;
dis = new DataInputStream(s.getInputStream());
while(flag) {
String str = dis.readUTF();
System.out.println(str);
}
dis.close();
}
} catch(EOFException e){
System.out.println("Client closed");
} catch(IOException e) {
e.printStackTrace();
}finally{
try{
if(dis !=null) dis.close();
if(s != null) s.close();
}catch(IOException e1){
e1.printStackTrace();
}
}
}
}
...全文
236 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rio_bmw 2013-01-08
  • 打赏
  • 举报
回复
引用 8 楼 ahuter9 的回复:
是没有问题的
哎呦 我怎么不行啊 我都要崩溃了
傲雪kimi 2013-01-08
  • 打赏
  • 举报
回复

是没有问题的
Rio_bmw 2013-01-08
  • 打赏
  • 举报
回复
引用 4 楼 ahuter9 的回复:
引用 3 楼 Rio_bmw 的回复:我不知道怎么回复楼上 我在服务器编了个让接受到的信息打印出来的数据程序 可是我在运行的时候却没有这个功能点击引用就可以了,我就可以收到系统的提醒
咦,那我怎么运行不出来啊 服务器这边就个a Client connected! 客户端这边打什么也没反应
傲雪kimi 2013-01-08
  • 打赏
  • 举报
回复
引用 5 楼 Rio_bmw 的回复:
引用 4 楼 ahuter9 的回复:引用 3 楼 Rio_bmw 的回复:我不知道怎么回复楼上 我在服务器编了个让接受到的信息打印出来的数据程序 可是我在运行的时候却没有这个功能点击引用就可以了,我就可以收到系统的提醒晓得了
楼主上面的code是没有问题的
Rio_bmw 2013-01-08
  • 打赏
  • 举报
回复
引用 4 楼 ahuter9 的回复:
引用 3 楼 Rio_bmw 的回复:我不知道怎么回复楼上 我在服务器编了个让接受到的信息打印出来的数据程序 可是我在运行的时候却没有这个功能点击引用就可以了,我就可以收到系统的提醒
晓得了
傲雪kimi 2013-01-08
  • 打赏
  • 举报
回复
引用 3 楼 Rio_bmw 的回复:
我不知道怎么回复楼上 我在服务器编了个让接受到的信息打印出来的数据程序 可是我在运行的时候却没有这个功能
点击引用就可以了,我就可以收到系统的提醒
Rio_bmw 2013-01-08
  • 打赏
  • 举报
回复
我不知道怎么回复楼上 我在服务器编了个让接受到的信息打印出来的数据程序 可是我在运行的时候却没有这个功能
傲雪kimi 2013-01-08
  • 打赏
  • 举报
回复
应该是没有问题的,楼主希望问什么问题呢
Rio_bmw 2013-01-08
  • 打赏
  • 举报
回复
初学者求教啊

62,621

社区成员

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

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