JJJJJava-socket通信

2019-08-21  本文已影响0人  南在南方i

网络编程主要问题

两类传输协议:TCP;UDP

基于Socket的java网络编程

Socket类:客户端
ServerSocket:服务器端
TCP通信中,服务端与客户端是一对多的关系

服务端与客户端的关系.png

什么是Socket

Socket通讯的过程

Server端Listen(监听)某个端口是否有连接请求,Client端向Server 端发出Connect(连接)请求,Server端向Client端发回Accept(接受)消息。一个连接就建立起来了。Server端和Client 端都可以通过Send,Write等方法与对方通信
对于一个功能齐全的Socket,都要包含以下基本结构,其工作过程包含以下四个基本的步骤:

创建Socket

java在包java.net中提供了两个类Socket和ServerSocket,分别用来表示双向连接的客户端和服务端。这是两个封装得非常好的类,使用十分方便

数据输出与读取

数据.png

demo.手动发送内容并输出

class MyClient{
    public static void main(String[] args){
        //连接服务器段的socket
        Socket socket = null;
        try {
            socket = new Socket("10.129.12.158", 8888);
            //接收服务器消息
            BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String line = null;
            while ((line = br.readLine()) != null){
                System.out.println(line);
            }
        }catch (IOException e){
            System.out.println("网络出错 请重新登录");
        }finally {
            //关闭连接
            try {
                socket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

class MyServer{
    public static void main(String[] args){
        //创建ServerSocket
        try {
            ServerSocket ss = new ServerSocket(8888);
            //监听客户端的连接
            Socket socket = ss.accept();

            //从终端接收数据
            BufferedReader keyin = new BufferedReader(new InputStreamReader(System.in));
            //获取向客户端输出数据的输出流
            PrintStream ps = new PrintStream(socket.getOutputStream());
            String line = null;

            while ((line = keyin.readLine()) != null){
                //发送给客户端
                ps.println(line);
            }

            //发送给客户端

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

PS.

慢慢我们学习的东西开始逐渐融合了,今天学习网络用到了以前的多线程与I/O流等等,感觉到了吃力,但也让我能够更清楚的了解到自己哪方面的不足,加上今天的四级成绩有点身心俱疲的感觉,不过还是要咬牙坚持。我不希望以后某个时间点会后悔,因为让我们后悔情绪的本质是因为我们对自身实力过于高估从而不够自律和努力造成的,加油吧


开炮.jpg
上一篇下一篇

猜你喜欢

热点阅读