java复习——服务端与客户端socke

package com.atguigu;

import org.junit.Test;

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

/**

  • @auther Elding_xrl
  • @create 2020-06-18-15:17
  • 1、创建服务器端的ServerSocket,指明自己的端口号
  • 2、调用accept()表示接受来自于客户端的socket
  • 3、获取输入流
  • 4、读取输入流的数据
  • 5、关闭资源

*/
public class TCPJava {

@Test
//客户端
public void client(){

    OutputStream os = null;
    Socket socket = null;
    try {
        InetAddress inet = InetAddress.getByName("127.0.0.1");
        socket = new Socket(inet, 9988);

        os = socket.getOutputStream();
        os.write("你好,我是客户端GG!".getBytes());
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (os != null){
            try {
                os.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if (socket != null){
            try {
                socket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }


}

@Test
//服务端
public void server() throws IOException {
    /**
     *  * 1、创建服务器端的ServerSocket,指明自己的端口号
     *  * 2、调用accept()表示接受来自于客户端的socket
     *  * 3、获取输入流
     *  * 4、读取输入流的数据
     *  * 5、关闭资源
     */
    ServerSocket serverSocket = null;
    Socket accept = null;
    InputStreamReader isr = null;
    ByteArrayOutputStream bis =null;
    try {

        //1、创建服务器端的ServerSocket,指明自己的端口号
        serverSocket = new ServerSocket(9988);
        //2、serverSoceket调用accept方法来表示接收到了客户端的请求
        accept = serverSocket.accept();
        //3、获取输入流
        InputStream os = accept.getInputStream();

//方式一:
// isr = new InputStreamReader(os);
// //读取流的数据
// char[] buffer = new char[5];
//
// int len;
// StringBuffer strB = new StringBuffer();
// while ((len = isr.read(buffer)) != -1){
// strB.append(buffer,0,len);
// }
// System.out.println(strB);

        //方式二:
         bis = new ByteArrayOutputStream();
        byte[] buffer = new byte[5];

        int len;
        while ((len = os.read(buffer)) != -1){
            bis.write(buffer,0,len);
        }
        System.out.println(bis.toString());

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        //4、关闭资源

// if (isr != null){
// isr.close();
// }
// if (accept != null){
// accept.close();
// }
// if (serverSocket != null){
// serverSocket.close();
// }
if (bis != null){
bis.close();

        }
        if (isr != null){

            isr.close();
        }
        if(accept != null){
            accept.close();

        }
        if( serverSocket != null){
            serverSocket.close();
        }
    }






}

}

你可能感兴趣的:(java复习)