📄 testserver.java
字号:
package bookCase;
import java.awt.Panel;
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.PrintWriter;
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 {
private Socket socket = null;
BufferedReader dis;
PrintWriter dos;
JTextField tf;
JTextArea ta;
int clientnum=0;
ReadThread rt;
public TestServer(){
this.setTitle("聊天程序服务端");
JScrollPane jp=new JScrollPane();
ta=new JTextArea(10,10);
Panel p =new Panel();
tf=new JTextField(20);
JButton b=new JButton("发送");
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,350);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
tf.requestFocus();
this.connect();
}
private void connect() {
ServerSocket serverSocket=null;
boolean existClient=true;
try {
try{
serverSocket=new ServerSocket(4600);
System.out.println("连接成功");
} catch (IOException e) {
System.out.println("对不起,不能监听端口:4800.");
System.exit(-1);
}
//对机器4700端口进行监听,看是否有客户端的socke连接
while(existClient){
//如果有客户端的socket连接,就生成ReadThread类的对象
//即生成一个线程对象,以进行输入流、输出流生成以及数据的读取操作
socket = serverSocket.accept();
rt=new ReadThread(this.ta,this.dis,socket,this.clientnum);
rt.start();
this.clientnum++;
//输入流
dis=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//输出流
dos=new PrintWriter(socket.getOutputStream());
}
} catch (IOException e) {
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent e) {
String s=new String (tf.getText());
dos.write(s); //老是显示这句出现异常 老师这是什么原因呢?
ta.append("服务器说: "+s);
ta.append("\n");
tf.setText("");
tf.requestFocus();
}
public static void main(String[] args) {
new TestServer();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -