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

📄 client.java

📁 一个java聊天程序。很简单的版本
💻 JAVA
字号:
package aa;
import java.net.*;
import java.awt.*;
import java.awt.event.*; 
import java.io.*;
//import javax.servlet.*;
public class Client extends Frame implements 
ActionListener,Runnable {
	private TextField t1,t2;
	private Label l1,l2;
	private TextArea ta1,ta2;
	private Socket sock;
	private BufferedReader br;
	private PrintWriter pw;
	public Client(){
		try{
			setLayout(new GridLayout(6,1));
			Panel p=new Panel();
			t1=new TextField(20);
			t2=new TextField(10);
			l1=new Label("IP地址  ");
			l2=new Label("对应端口  ");
			Button bt=new Button("连接");
			bt.setBackground(Color.CYAN);
			p.add(l1);
			p.add(t2);
			p.add(l2);
			p.add(t2);
			add(p);
			ta1=new TextArea(100,300);
			add(new Label("消息框"));
			add(ta1);
			add(new Label("用户输入框"));
			ta2=new TextArea(30,300);
			add(ta2);
			Panel p2=new Panel();
			Button b=new Button("发送"); 
			b.setBackground(Color.gray);
			p2.add(b);
			add(p2);
			setTitle("客户端");
		    setSize(300,450);
		    setResizable(false);
	        setVisible(true);
		    //捕获各种的异常 
		    bt.addActionListener(this);
		    //  b.addActionListener(this);
		    //增加了一个关闭的事件
		    addWindowListener(new WindowAdapter(){
		    public void windowClosing(WindowEvent exit){ System.exit(0);}});
		   Thread  ThreadReader=new Thread(this);
	       ThreadReader.start();
		   b.addActionListener(this);
		   
		   
			
			sock=new Socket("localhost",9999);
			br=new BufferedReader(new InputStreamReader(sock.getInputStream()));
			pw=new PrintWriter(new OutputStreamWriter(sock.getOutputStream()),true);
			pw.println("hello.");
			new ClientService(br,this).start();
		}catch(Exception e){
			System.out.println(e.getMessage());
		}
	}
	public void message(String s){
		System.out.println("got a reply message:'"+s+"'");
	}
	public static void main(String[] args) {
		new Client();
		
	}
	public void run(){
     while(true){
        try{
            ta1.append("\n #_____________________________#\n"+br.readLine()); 
        }catch(Exception e){System.out.println(e.getMessage());}
    }  
   }
	 public void actionPerformed(ActionEvent e)
     {
		 String command=e.getActionCommand();
	     if("发送".equals(command)) { 
	         if(ta2.getText().trim()!=null){
                    ta1.append("\n 客户端的消息:\n"+ta2.getText());
	                 pw.println(ta2.getText()+"\n");//" \n  客户短信: \n "
	         }
	         else if(ta2.getText().trim()==null){ 
	        	 ta1.append("请输入完整的IP地址与端口以及、\n"+"不能空发消息");}
	                ta2.setText(" "); //结束的时候清空文本框
	          }
            else  if("连接".equals(command)){
            	try{ 
	               //借助连接的按钮完成远程pc的连接的工作。建立输入与输出流两个工具
                    s=new Socket(tf1.getText().toString(),Integer.parseInt((tf2.getText()).trim()));
                   //Integer.parseInt((tf2.getText()).trim())
	               br=new BufferedReader(new InputStreamReader(s.getInputStream()));
                   pw=new PrintWriter(s.getOutputStream(),true);
	       //ta1.append("\n 服务端来消息:\n"+br.readLine());
	       }
	       catch(Exception ex){
                    //ta1.append("产生了输入输出异常无法完成交互!");
                 }
	      }        
	    } 
	
}
class ClientService extends Thread{
	Socket sock;
	BufferedReader br;
	Client client;
	public ClientService(BufferedReader b,Client c){
		br=b;
		client=c;
	}
	public void run(){
		while(true){
			try{
				String s=br.readLine();
				if(s==null || s.equals("bye")){
					break;
				}
				client.message(s);
			}catch(Exception e){
				System.out.println(e.getMessage());
				break;
			}
		}
	}
}

⌨️ 快捷键说明

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