package com.test;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
public class MyServer extends JFrame implements ActionListener, KeyListener {
JPanel jp1 = null;
JTextArea jta = null;
JTextField jtf = null;
JScrollPane jsp = null;
JButton jb = null;
PrintWriter pw = null;
String chatName = null;
public MyServer() {
jta = new JTextArea();
jsp = new JScrollPane(jta);
jtf = new JTextField(20);
jb = new JButton("发送");
jb.addActionListener(this);
jtf.addKeyListener(this);
jp1 = new JPanel();
jp1.add(jtf);
jp1.add(jb);
this.add(jsp, "Center");
this.add(jp1, "South");
this.setTitle("简易聊天");
this.setSize(450, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
try {
ServerSocket ss = new ServerSocket(9999);
Socket s = ss.accept();
chatName = s.getRemoteSocketAddress().toString();
System.out.println(chatName);
InputStreamReader isr = new InputStreamReader(s.getInputStream(), "UTF-8");
BufferedReader br = new BufferedReader(isr);
pw = new PrintWriter(s.getOutputStream(), true);
while(true) {
String info = br.readLine();
if(info.equals("bye")) {
s.close();
break;
}
jta.append(chatName + ":" + info + "\r\n");
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void sendMessage() {
String info = jtf.getText();
jta.append("我:" + info + "\r\n");
pw.println(info);
jtf.setText("");
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == jb) {
sendMessage();
}
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == 10) {
sendMessage();
}
System.out.println(e.getKeyCode());
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
public static void main(String[] args) {
new MyServer();
}
}
package com.test;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
public class MyClient extends JFrame implements ActionListener, KeyListener{
JPanel jp1 = null;
JTextArea jta = null;
JTextField jtf = null;
JScrollPane jsp = null;
JButton jb = null;
PrintWriter pw = null;
String chatName = null;
public MyClient() {
jta = new JTextArea();
jsp = new JScrollPane(jta);
jtf = new JTextField(20);
jb = new JButton("发送");
jb.addActionListener(this);
jtf.addKeyListener(this);
jp1 = new JPanel();
jp1.add(jtf);
jp1.add(jb);
this.add(jsp, "Center");
this.add(jp1, "South");
this.setTitle("简易聊天");
this.setSize(450, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
try {
Socket s = new Socket("localhost", 9999);
chatName = s.getRemoteSocketAddress().toString();
OutputStreamWriter osw = new OutputStreamWriter(s.getOutputStream(), "UTF-8");
pw = new PrintWriter(osw, true);
InputStreamReader isr = new InputStreamReader(s.getInputStream(), "UTF-8");
BufferedReader br = new BufferedReader(isr);
while(true) {
String info = br.readLine();
if(info.equals("bye")) {
s.close();
break;
}
jta.append(chatName + ":" + info + "\r\n");
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void sendMessage() {
String info = jtf.getText();
jta.append("我:" + info + "\r\n");
pw.println(info);
jtf.setText("");
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jb) {
sendMessage();
}
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == 10) {
sendMessage();
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
public static void main(String[] args) {
new MyClient();
}
}