📄 client.java
字号:
package socket.test.tcp.chat;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2005</p> * <p>Company: </p> * @author not attributable * @version 1.0 *///Client.javaimport java.io.*;import java.net.*;import java.awt.*;import java.awt.event.*; public class Client extends Frame implements ActionListener,Runnable{ private TextField tf1,tf2; private Label la1,la2; private TextArea ta1,ta2; private Socket s; private Button b,l; private BufferedReader br=null; private PrintWriter pw=null; // private byte // static String port,ip; public static void main(String arg[]) { new Client(); //if(arg[0].length()!=0) ip=arg[0]; //if(arg[1].length()!=0) port=arg[1]; } //完成构造函数的说明 public Client(){ //完成ip地址与端口的建立 setLayout(new GridLayout(6,1)); Panel panel=new Panel(); tf1=new TextField(20); tf2=new TextField(10); la1=new Label("IP地址 "); la2=new Label("对应端口 "); Button l=new Button("连接"); l.setBackground(Color.green); //l.addActionListener(this); panel.add(la1); panel.add(tf1); panel.add(la2); panel.add(tf2); panel.add(l); add(panel); //输入框与显示框 ta1=new TextArea(100,300); add(new Label("消息框")); add(ta1); add(new Label("用户输入框")); ta2=new TextArea(30,300); add(ta2); Panel p2=new Panel(); b=new Button("发送"); b.setBackground(Color.yellow); p2.add(b); add(p2); setTitle("客户端"); setSize(300,450); setResizable(false); setVisible(true); //捕获各种的异常 l.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); } public void run(){ while(true){ try{ ta1.append(" #_____________________________#\n"+br.readLine()+"\n "); }catch(Exception exo){} } } //客户向服务端发送消息啊! public void actionPerformed(ActionEvent e) { String command=e.getActionCommand(); if("发送".equals(command)) { if(ta2.getText().trim()!=null) { ta1.append(" 客户端的消息:"+ta2.getText()+"\n"); // pw.println // String str=ta2.getText().trim(); byte[] by=new byte[32]; by=ta2.getText().getBytes(); pw.println(by);//" 客户短信: " } else if(ta2.getText().trim()==null) { ta1.append("请输入完整的IP地址与端口以及、"+"不能空发消息\n");} ta2.setText(" "); //结束的时候清空文本框 } else if("连接".equals(command)){ try { // InterAddress //借助连接的按钮完成远程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(" 服务端来消息:"+br.readLine()); } catch(Exception ex){ //ta1.append("产生了输入输出异常无法完成交互!"); } } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -