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

📄 testclient.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.Socket;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class TestClient extends JFrame implements ActionListener {
	Socket clientSocket;//创建一个socket
	int clientnum=0;
	BufferedReader dis;//输入流
	PrintWriter dos;//输出流
	JTextField tf;//文本编辑区域
	JTextArea ta;//聊天内容显示区域
	String s11,s22;//
	public TestClient(String s1, String s2) {
		this.setTitle("聊天程序客户端");
		JScrollPane jp=new JScrollPane();
		ta=new JTextArea(10,10);//设置内容显示区域的长宽
		Panel p=new Panel();
		tf=new JTextField(20);//设置文本输入长度20
		JButton b=new JButton("发送");//新建一个发送按钮
		b.addActionListener(this);//添加按钮发生事件
		tf.addActionListener(this);//添加 文本输入发生事件
		p.add(tf);//把文本编辑区添加到内容面板中
		p.add(b);
		jp.setViewportView(ta);//设置JScrollPane面板可见
		this.getContentPane().add(jp);//调用getContentPane()得到内容面板对象,把jp添加到的内容面板中
		this.getContentPane().add("South",p);
		this.setSize(350,350);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.s11=s1;//用于传递参数给当前对象
		this.s22=s2;
		this.setVisible(true);
		this.connect();
		this.createReadThread();
		tf.requestFocus();
	}

	private void connect() {
		try {
			clientSocket = new Socket(s22,4600);//给s2赋值,它的主机IP为S22,端口号是4800
			//得到对应的输出流,写客户数据到服务器Socket
			dos=new PrintWriter(clientSocket.getOutputStream());
			//得到对应的输入流 ,从服务器Socket读取一行字符串
			dis=new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
		}catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void actionPerformed(ActionEvent e) {
		String s=new String (tf.getText()); 
		//while(! s.equals("end")){
			dos.write(s11+"说: "+s);
			ta.append("Client"+clientnum+"自己说:"+s);
			ta.append("\n");
			tf.setText("");
			tf.requestFocus();
		//}
	}

	private void createReadThread() {
		ReadThread rt=new ReadThread(this.ta,this.dis,this.clientSocket,this.clientnum);
		rt.start();

	}

}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -