Socket 实现服务与客户端之前的通信

package com.example.jedis.test.test2;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

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

/**
 * ***GOOD LUCK****
 *
 * @Author : Wukn
 * @Date : 2018/6/
 */
@SpringBootTest
@RunWith(SpringRunner.class)
public class EchoService {


    Logger logger = LoggerFactory.getLogger( EchoService.class );


    private ServerSocket serverSocket;


    @Test
    public void service1() throws Exception{
        //监听6666端口
        ServerSocket serverSocket = new ServerSocket( 6666 );

        //等待客户的连接请求,连接成功就会返回一个Socket对象
        Socket socket = serverSocket.accept();
        if(socket == null) {
            System.out.println("连接失败------");
        }
        logger.info( "Socket{连接成功}----------" + socket);

        OutputStream outputStream = socket.getOutputStream();
        PrintWriter printWriter = new PrintWriter( outputStream,true );

        InputStream inputStream = socket.getInputStream();
        BufferedReader bufferedReader = new BufferedReader( new InputStreamReader( inputStream ) );

    }


    /**
     * 服务器启动
     * @throws Exception
     */
    public void getService() {
        //监听6666端口
        try {
            serverSocket = new ServerSocket( 6666 );
        } catch (IOException e) {
            e.printStackTrace( );
        }
        System.out.println("服务器启动成功.............");
    }





    /**
     *
     * @return
     */
    public PrintWriter getPrintWriter( Socket socket) throws Exception{
        OutputStream outputStream = socket.getOutputStream();
        PrintWriter printWriter = new PrintWriter( outputStream,true );
        return printWriter;
    }


    /**
     *
     * @return
     */
    public BufferedReader getBufferedReader(Socket socket) throws Exception{
        InputStream inputStream = socket.getInputStream();
        BufferedReader bufferedReader = new BufferedReader( new InputStreamReader( inputStream ) );
        return bufferedReader;
    }


    /**
     * 打印
     * @return
     */
    public String pribtMeg(String s) {
        return "消息:"+""+s;
    }





    /**
     *处理接受的消息
     */
    public void serviveBegin() {
        Socket socket = null;
        try {
            //等待客户端连接
             socket = serverSocket.accept();
            if(socket == null) {
                System.out.println("连接失败------");
            }
            System.out.println("连接成功--------");
            System.out.println("连接地址和端口号---"+socket.getInetAddress() + socket.getPort());
            BufferedReader bufferedReader = getBufferedReader(socket);
            PrintWriter printWriter = getPrintWriter(socket);
            String message = null;
            while ((message = bufferedReader.readLine()) != null) {
                System.out.println("接受消息----"+message);
                printWriter.println(pribtMeg(message));
              if(message.equals( "bye" )) {
                  break;
              }
            }
        } catch (IOException e) {
            e.printStackTrace( );
        } catch (Exception e) {
            e.printStackTrace( );
        }finally {
            if(socket != null) {
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace( );
                }
            }
        }

    }

    /**
     *
     */
    @Test
    public void test33() {
        getService();
        serviveBegin();
    }

}

client

package com.example.demo.web;

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

/**
 * ***GOOD LUCK****
 *
 * @Author : Wukn
 * @Date : 2018/6/
 */
public class ClientDemo {

    private static int port = 8888;
    private static String ip = "localhost";
    public static void main(String[] args) throws Exception{
        Socket socket = new Socket( ip , port );
        System.out.println("开始连接--------");
        if(socket != null) {
            System.out.println("客户端连接成功----------");
        }
        BufferedReader bufferedReader = getBufferedReader(socket);
        PrintWriter printWriter = getPrintWriter(socket);
        //获取输入的的内容
        System.out.println("Enter your value:");
        BufferedReader local = new BufferedReader( new InputStreamReader( System.in ) );
        String message = null;
        while ((message = local.readLine()) != null) {
            printWriter.println( message );
            System.out.println(bufferedReader.readLine());
            if(message.equals( "bye" )) {
                break;
            }
        }
        socket.close();

    }

    /**
     *
     * @return
     */
    public static PrintWriter getPrintWriter(Socket socket) throws Exception{
        OutputStream outputStream = socket.getOutputStream();
        PrintWriter printWriter = new PrintWriter( outputStream,true );
        return printWriter;
    }


    /**
     *
     * @return
     */
    public static BufferedReader getBufferedReader(Socket socket) throws Exception{
        InputStream inputStream = socket.getInputStream();
        BufferedReader bufferedReader = new BufferedReader( new InputStreamReader( inputStream ) );
        return bufferedReader;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_41404773/article/details/81362527
今日推荐