版本0.1,实现功能:客户端窗体设计、客户端与服务器端的网络连接、“Client端,在TextField中输入文本,按回车键之后,该文本显示在TextArea中”。
client端代码如下:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
new MyFrame("chat");
try {
Socket s = new Socket("127.0.0.1", 6666);
OutputStream os = s.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF("hello, server");
} catch (IOException e) {
e.printStackTrace();
}
}
}
class MyFrame extends Frame {
private TextField tf;
private TextArea ta;
MyFrame(String s) {
super(s);
this.setBounds(300, 300, 400, 300);
tf = new TextField();
ta = new TextArea();
this.add(tf, BorderLayout.SOUTH);
this.add(ta, BorderLayout.NORTH);
this.addWindowListener(new MyWindowListner());
tf.addActionListener(new MyActionListener());
pack();
setVisible(true);
}
class MyWindowListner extends WindowAdapter {
public void windowClosing(WindowEvent e) {
setVisible(false);
System.exit(0);
}
}
class MyActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String s = tf.getText();
ta.append(s + "\n");
tf.setText("");
}
}
}
服务器端代码如下:
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(6666);
Socket s = ss.accept();
System.out.println("a client has been connected!");
InputStream is = s.getInputStream();
DataInputStream dis = new DataInputStream(is);
System.out.println(dis.readUTF());
} catch (IOException e) {
e.printStackTrace();
}
}
}