一个简单的局域网聊天,网络编程基础应用。服务器端。
import javax.swing.*;
import java.io.*;
import java.net.*;
import java.awt.event.*;
public class MyServer3 extends JFrame implements ActionListener {
JTextArea jta = null;
JTextField jtf = null;
JPanel jp1 = null;
JButton jb1 = null;
JScrollPane jsp = null;
//把信息发给客户端的对象
PrintWriter pw = null;
public static void main(String[] args) {
// TODO Auto-generated method stub
MyServer3 ms3 = new MyServer3();
}
public MyServer3() {
jta = new JTextArea();
jsp = new JScrollPane(jta);
jtf = new JTextField(20);
jb1 = new JButton("发送");
jb1.addActionListener(this);
jp1 = new JPanel();
jp1.add(jtf);
jp1.add(jb1);
this.add(jsp, "Center");
this.add(jp1, "South");
this.setSize(400, 300);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("服务器");
try {
//服务器监听
ServerSocket ss = new ServerSocket(9999);
this.jta.setText("服务器启动\r\n");
//等待客户端链接
Socket s = ss.accept();
this.jta.append("客户端已连接!\r\n");
InputStreamReader isr = new InputStreamReader(s.getInputStream());
BufferedReader br = new BufferedReader(isr);
pw = new PrintWriter(s.getOutputStream(), true);
//读取从客户端发送的消息
while (true) {
String info = br.readLine();
jta.append("————————客户端————————\r\n" + info + "\r\n");
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getSource() == jb1) {
//把服务器在jtf中的信息发送给客户端
String info = jtf.getText();
jta.append("————————服务器————————\r\n" + info + "\r\n");
pw.println(":" + info);
//清空发送框
jtf.setText("");
}
}
}