java编程网络编程,多线程,小型聊天系统

来源:互联网 发布:数据采集模块 编辑:程序博客网 时间:2024/05/22 16:46
package SocketTest;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.Date;//java编程网络编程,多线程,小型聊天系统public class Server6 {    public static void main(String[] args) {            new Thread(){                ServerSocket serverSocket = null;//服务器套接字定义初始化                Socket client = null;//客服端套接字初始化                OutputStream os = null;//此抽象类是表示输出字节流的所有类的超类。                InputStream is= null;//此抽象类是表示字节输入流的所有类的超类。                //从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。                 BufferedReader br = null;                //将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。                 BufferedWriter bw= null;                BufferedReader br1 = null;                @Override                public void run() {                    // TODO Auto-generated method stub                try{//                      new Date()该对象会返回当前的时间                    System.out.println("服务器启动:"+new Date());//                  初始化服务器                    serverSocket = new ServerSocket(8888);                    client =serverSocket.accept();//accept()监听客户端的连接,没有连接则处于阻塞状态                    os =client.getOutputStream();//打开通往客户端的输出流,可以用来给客户端发数据                    is = client.getInputStream();//打开客户端通往服务器端的输入流,用来接收来自客户端的数据                    br1=new BufferedReader(new InputStreamReader(System.in));                    br =new BufferedReader(new InputStreamReader(is));                    bw = new BufferedWriter(new OutputStreamWriter(os));                    while(true){        //              1.读客户端发来的数据                        System.out.println("客户端说:"+br.readLine());        //              2.读取服务器端通过键盘输入的内容                        String line =br1.readLine();        //              3.将服务器端输入的内容发送给客户端                        bw.write(line);                        bw.newLine();                        bw.flush();                        if("quit".equals(line)){                            break;                        }                    }                } catch (IOException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }finally{                    try {                        serverSocket.close();                        client.close();                        os.close();                        is.close();                        br.close();                        bw.close();                        br1.close();                    } catch (IOException e) {                        // TODO Auto-generated catch block                        e.printStackTrace();                    }                }                }            }.start();        }}/*服务器启动:Tue Dec 26 00:34:41 CST 2017客户端说:服务器你好你也好客户端说:我收到了好的客户端说:quitquit*/
package SocketTest;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.net.Socket;import java.net.UnknownHostException;public class Client6 {    public static void main(String[] args) {        // TODO Auto-generated method stub        Socket client=null;        OutputStream os = null;        InputStream is= null;        BufferedReader br = null;        BufferedWriter bw= null;        BufferedReader brServer=null;        try {//          连接服务器,通过ip和端口号            client = new Socket("127.0.0.1",8888);            os =client.getOutputStream();//打开通往客户端的输出流,可以用来给客户端发数据            is = client.getInputStream();//打开客户端通往服务器端的输入流,用来接收来自客户端的数据//          从键盘读取一行字符串            br =new BufferedReader(new InputStreamReader(System.in));//          将字符串发送到Server1服务器端            bw =new BufferedWriter(new OutputStreamWriter(os));            brServer = new BufferedReader(new InputStreamReader(is));            System.out.println("-----------开始聊天-------------");            while(true){//              1.读取客户端通过键盘输入的内容                String line =br.readLine();//              2.将客户端输入的内容发送给服务器                bw.write(line);                bw.newLine();                bw.flush();                if("quit".equals(line)){                    break;                }//              3.读server服务器发来的数据                System.out.println("服务器说:"+brServer.readLine());                }           } catch (UnknownHostException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }finally{            try {                client.close();                os.close();                is.close();                br.close();                bw.close();                brServer.close();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }    }}/*-----------开始聊天-------------服务器你好服务器说:你也好我收到了服务器说:好的quit*/
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 纸杯 纸杯花 纸杯机 纸杯做手工 纸杯灯笼 纸杯动物 纸杯做灯笼 纸杯不倒翁 纸杯菊花 纸杯小动物 纸杯电话 纸杯图片 纸杯画 星巴克纸杯 妙洁纸杯 纸杯厂 纸杯厂家 纸杯生产 纸杯价格 纸杯的做法 纸杯加工 纸杯定制 纸杯制作 纸杯规格 纸杯龙 纸杯定做 纸杯纸厂家 纸杯的厂家 纸杯加工厂 纸杯戚风 红星纸杯厂 彩色纸杯 纸杯奶茶 纸杯传水 纸杯兔子 小纸杯 隔热纸杯 纸杯蛋糕做法 纸杯蛋糕的做法 一次性纸杯简单手工图片 用纸杯做手工漂亮风铃