⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testserver.java

📁 本代码用java实现
💻 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 + -