?? testserver.java
字號:
package talk;
/**
* 本程序?qū)崿F(xiàn)了聊天程序服務(wù)器端的用戶界面及功能。
*/
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class TestServer extends JFrame implements ActionListener {
DataInputStream dis;
DataOutputStream dos;
JTextField tf;
JTextArea ta;
// 聊天程序服務(wù)器端主窗口用戶初始界面。
public TestServer() {
this.setTitle("聊天程序服務(wù)端");
JScrollPane jp = new JScrollPane();
ta = new JTextArea(10, 10);
Panel p = new Panel();
tf = new JTextField(20);
JButton b = new JButton("發(fā)送");
b.addActionListener(this);
tf.addActionListener(this);
p.add(tf);
p.add(b);
jp.setViewportView(ta);
this.getContentPane().add(jp);
this.getContentPane().add("South", p);
this.setSize(350, 250);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
tf.requestFocus();
this.connect(); // 建立連接
this.createReadThread(); // 啟動接受信息線程
}
// 建立雙方通信的連接可,準(zhǔn)備通信所需要的流。
public void connect() {
try {
ServerSocket ss = new ServerSocket(911); // 準(zhǔn)備通信端口
Socket s2 = ss.accept();
InputStream is = s2.getInputStream();
dis = new DataInputStream(is); // 準(zhǔn)備輸入流
OutputStream os = s2.getOutputStream();
dos = new DataOutputStream(os); // 準(zhǔn)備輸出流
} catch (IOException e) {
System.out.println("連接服務(wù)器故障!");
}
}
// 啟動接受對方信息線程的方法。
public void createReadThread() {
ReadThread rt = new ReadThread(this.ta, this.dis);
rt.start();
}
// 發(fā)送信息的時間處理方法。
public void actionPerformed(ActionEvent e) {
try {
String s = tf.getText();
dos.writeUTF(s); // 發(fā)送聊天信息
ta.append("自己說:" + s);
ta.append("\n");
tf.setText("");
tf.requestFocus();
} catch (IOException e1) {
e1.printStackTrace();
}
}
public static void main(String[] args) {
new TestServer();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -