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) {
}
}