fpf19910417 2015-04-01 13:06 采纳率: 33.3%
浏览 1517

能不能帮我看一下下面两端小代码服务端怎么收不到数据啊?

package chat;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Client extends JFrame implements ActionListener {
Socket socket = null;
PrintWriter pw = null;
JTextField tf = new JTextField(20);
JTextArea ta = new JTextArea();

public Client() {
    try {
        socket = new Socket("localhost", 8088);
        try {
            pw = new PrintWriter(new OutputStreamWriter(
                    socket.getOutputStream()));
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        JLabel label = new JLabel("请输入聊天内容:");
        tf.addActionListener(this);
        this.setLayout(null);
        label.setBounds(10, 10, 100, 50);
        tf.setBounds(120, 25, 200, 20);
        ta.setBounds(0, 50, 400, 300);
        add(label);
        add(tf);
        add(ta);
        this.setSize(400, 300);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } finally {
        if (socket != null) {
            try {
                socket.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}

public static void main(String[] args) {
    Client client = new Client();
}

public void actionPerformed(ActionEvent e) {
    String str = tf.getText();
    ta.append("客户端说:" + str + "\n");
    tf.setText("");
    System.out.println(str);
    pw.println(str);
    pw.flush();
}

}

package chat;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Server extends JFrame implements ActionListener {
ServerSocket serversocket = null;

public Server() {
    try {
        JLabel label = new JLabel("请输入聊天内容:");
        JTextField tf = new JTextField(20);
        tf.addActionListener(this);
        JTextArea ta = new JTextArea();
        this.setLayout(null);
        label.setBounds(10, 10, 100, 50);
        tf.setBounds(120, 25, 200, 20);
        ta.setBounds(0, 50, 400, 300);
        add(label);
        add(tf);
        add(ta);
        this.setSize(400, 300);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
        serversocket = new ServerSocket(8088);
        System.out.println("等待客户端连接:");
        Socket socket = serversocket.accept();
        System.out.println("客户端已连接上");
        BufferedReader br = new BufferedReader(new InputStreamReader(
                socket.getInputStream()));
        String line = null;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
            ta.append("客户端说:" + line + "\n");
        }
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

public static void main(String[] args) {
    Server server = new Server();
}

@Override
public void actionPerformed(ActionEvent e) {

}

}

  • 写回答

2条回答 默认 最新

  • threenewbee 2015-04-01 16:14
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 C# datagridview 栏位进度
  • ¥15 vue3页面el-table页面数据过多
  • ¥100 vue3中融入gRPC-web
  • ¥15 kali环境运行volatility分析android内存文件,缺profile
  • ¥15 写uniapp时遇到的问题
  • ¥15 vs 2008 安装遇到问题
  • ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
  • ¥15 找一个网络防御专家,外包的
  • ¥100 能不能让两张不同的图片md5值一样,(有尝)
  • ¥15 informer代码训练自己的数据集,改参数怎么改