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; } }