socket客户端与服务端之间传递String ,json

一个需求就是客户端传递json给服务端,当然用String来可以。
服务端收到后进行处理,发送响应报文给客户端。
具体代码如下

值得注意的一点是:readLine函数一定要有“\n”才能结束,不然的话会一直读取直到读到“\n”为止。
所以必须在String的后面加上“,”

原来readLine()方法在进行读取一行时,只有遇到回车(\r)或者换行符(\n)才会返回读取结果,这就是“读取一行的意思”,重要的是readLine()返回的读取内容中并不包含换行符或者回车符;

并且,当realLine()读取到的内容为空时,并不会返回 null,而是会一直阻塞,只有当读取的输入流发生错误或者被关闭时,readLine()方法才会返回null。

Client端的

package com.rosam.ywttest.test;

import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client03 {

    public static void main(String[] args) {
        try {
            Socket s = new Socket("127.0.0.1",8885);

            //构建IO
            InputStream is = s.getInputStream();
            OutputStream os = s.getOutputStream();

            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
            String jsonParams="我是一个json字符串";
            //向服务器端发送一条消息
            bw.write(jsonParams+"\n");
            bw.flush();

            //读取服务器返回的消息
            BufferedReader br = new BufferedReader(new InputStreamReader(is));
            String mess = br.readLine();
            System.out.println("服务器:"+mess);
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

Server端的

package com.rosam.ywttest.test;


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Server03 {
    public static void main(String[] args) {
        try {
            ServerSocket ss = new ServerSocket(8885);
            System.out.println("启动服务器....");
            Socket s = ss.accept();


            BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
            //读取客户端发送来的消息
            String mess = br.readLine();
            System.out.println("我收到了客户端的东西"+mess);
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

            String jsonParams="服务端----专属,给你一份吧";
            bw.write(jsonParams+"\n");
            bw.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_38070406/article/details/80748609
今日推荐