博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简易聊天工具
阅读量:6447 次
发布时间:2019-06-23

本文共 6868 字,大约阅读时间需要 22 分钟。

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.IOException;import java.io.OutputStream;import java.io.PrintStream;import java.net.InetAddress;import java.net.Socket;import java.net.UnknownHostException;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JTextArea;import javax.swing.JTextField;public class Person1 extends JFrame{    private static JTextArea p1ta;    private JTextField p1tf;    private JButton p1b;                //构造方法    public Person1() {        super("小明");    }    public void init1() {        this.setLayout(null);        p1ta = new JTextArea();        p1tf = new JTextField();        p1b = new JButton("发送");        p1ta.setBounds(0, 0, 500, 300);        p1tf.setBounds(0, 315, 400, 50);        p1b.setBounds(420, 320, 60, 40);        buttonLisenter();                this.add(p1ta);        this.add(p1tf);        this.add(p1b);        this.setSize(500, 400);        this.setLocationRelativeTo(null);        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        this.setVisible(true);    }    public JTextArea getP1ta() {        return p1ta;    }    //按钮监听器    private void buttonLisenter() {        p1b.addActionListener(new ActionListener() {                        @Override            public void actionPerformed(ActionEvent e) {                String str = p1tf.getText();                p1tf.setText("");                p1ta.append("我:"+"\r\n"+str + "\r\n");                try {                    Socket soc = new Socket(InetAddress.getLocalHost(),8888);                    OutputStream ots = soc.getOutputStream();                    PrintStream ps = new PrintStream(ots);                    ps.print(str+"\r\n");                    ps.close();                    ots.close();                } catch (UnknownHostException e1) {                    e1.printStackTrace();                } catch (IOException e1) {                    e1.printStackTrace();                }            }        });    }            //测试类    public static void main(String[] args) {        Person1 p1 = new Person1();        p1.init1();        Thread t1 = new Thread(new RunableP1(p1ta));        t1.start();    }}

 

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.IOException;import java.io.OutputStream;import java.io.PrintStream;import java.net.InetAddress;import java.net.Socket;import java.net.UnknownHostException;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JTextArea;import javax.swing.JTextField;public class Person2 extends JFrame{    private static JTextArea p2ta;    private JTextField p2tf;    private JButton p2b;            public void init2() {                this.setLayout(null);        p2ta = new JTextArea();        p2tf = new JTextField();        p2b = new JButton("发送");        p2ta.setBounds(0, 0, 500, 300);        p2tf.setBounds(0, 315, 400, 50);        p2b.setBounds(420, 320, 60, 40);        buttonLisenter();        this.add(p2ta);        this.add(p2tf);        this.add(p2b);        this.setSize(500, 400);        this.setLocationRelativeTo(null);        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        this.setVisible(true);            }    public JTextArea getP2ta() {        return p2ta;    }    //无参构造    public Person2() {        super("小芳");    }    //按钮监听器        private void buttonLisenter() {            p2b.addActionListener(new ActionListener() {                                @Override                public void actionPerformed(ActionEvent e) {                    String str = p2tf.getText();                    p2tf.setText("");                    p2ta.append("我:"+"\r\n"+str + "\r\n");                    try {                        Socket soc = new Socket(InetAddress.getLocalHost(),9999);                        OutputStream ots = soc.getOutputStream();                        PrintStream ps = new PrintStream(ots);                        ps.print(str+"\r\n");                        ps.close();                        ots.close();                    } catch (UnknownHostException e1) {                        e1.printStackTrace();                    } catch (IOException e1) {                        e1.printStackTrace();                    }                }            });        }        //测试类    public static void main(String[] args) {        Person2 p2 = new Person2();        p2.init2();        Thread t2 = new Thread(new RunableP2(p2ta));        t2.start();    }}

 

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;import javax.swing.JTextArea;public class RunableP1 implements Runnable{    private JTextArea p1ta;    public RunableP1(JTextArea p1ta) {        this.p1ta = p1ta;    }    @Override    public void run() {        ServerSocket ss;        try {                ss = new ServerSocket(9999);                while(true){                Socket sk = ss.accept();                InputStream is = sk.getInputStream();                BufferedReader br = new BufferedReader(new InputStreamReader(is));                p1ta.append("小芳:\r\n"+br.readLine()+ "\r\n");                br.close();            }        } catch (IOException e) {            e.printStackTrace();        }    }}

 

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;import javax.swing.JTextArea;public class RunableP2 implements Runnable{    private JTextArea p2ta;    public RunableP2(JTextArea p2ta) {        this.p2ta = p2ta;    }    @Override    public void run() {        ServerSocket ss;        try {                ss = new ServerSocket(8888);                while(true){                Socket sk = ss.accept();                InputStream is = sk.getInputStream();                BufferedReader br = new BufferedReader(new InputStreamReader(is));                p2ta.append("小明:\r\n"+br.readLine()+ "\r\n");                br.close();            }        } catch (IOException e) {            e.printStackTrace();        }    }    }

 

import
 java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.JTextArea;
public class RunableP2 implements Runnable{
    private JTextArea p2ta;
    public RunableP2(JTextArea p2ta) {
        this.p2ta = p2ta;
    }
    @Override
    public void run() {
        ServerSocket ss;
        try {
                ss = new ServerSocket(8888);
                while(true){
                Socket sk = ss.accept();
                InputStream is = sk.getInputStream();
                BufferedReader br = new BufferedReader(new InputStreamReader(is));
                p2ta.append("小明:\r\n"+br.readLine()+ "\r\n");
                br.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
}

转载于:https://www.cnblogs.com/junzhao/p/4873335.html

你可能感兴趣的文章
交换机引领多媒体时代 东进颠覆传统CTI
查看>>
三选一 软件定义存储技术总有一款适合你
查看>>
支付宝不做社交用户猛涨!第一季度日活大增40%
查看>>
Oracle单行函数和多行函数实例
查看>>
汤森路透拟35.5亿美元出售知识产权与科技业务
查看>>
城市大脑三项技术论文同时入选国际顶级学术会议ACM MM
查看>>
Bash远程命令执行漏洞(CVE-2014-6271)分析利用
查看>>
传软银千亿美元基金募资接近完成 最快将于下周宣布
查看>>
《嵌入式系统数字视频处理权威指南》——2.3数字视频:颜色空间
查看>>
建设智慧城市 成都市交委与滴滴出行签战略合作协议
查看>>
注意那些容易被忽略的SQL注入技巧
查看>>
《日志管理与分析权威指南》一1.2.3 什么是日志消息
查看>>
《金蝶ERP-K/3完全使用详解》——6.8 报表查询分析
查看>>
《Hadoop与大数据挖掘》一2.2.5 动手实践:Hadoop IDE配置
查看>>
《计算机系统:系统架构与操作系统的高度集成》——2.9 指令集体系结构选择...
查看>>
《贝叶斯思维:统计建模的Python学习法》——2.7 讨论
查看>>
《CCNP安全Secure 642-637认证考试指南》——8.5节完成助记表
查看>>
《Android应用开发》——1.1节下载开发软件
查看>>
《贝叶斯思维:统计建模的Python学习法》——1.7 Monty Hall难题
查看>>
升级TCP协议使网速提升30%,中国受益明显
查看>>