java socket


1.客户端传输到服务端

1.1 服务器将客户端传输的内容打印出来

public void service() {
    ServerSocket serverSocket = null;
    InputStreamReader inputStreamReader = null;
    try {
        serverSocket = new ServerSocket(8899);
        Socket accept = serverSocket.accept();
        InputStream inputStream = accept.getInputStream();
        inputStreamReader = new InputStreamReader(inputStream);
        char[] cbuf = new char[5];
        int len = 0;
        while ( (len = inputStreamReader.read(cbuf))!=-1 ){
            System.out.print(new String(cbuf, 0, len));
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (inputStreamReader != null) {
            try {
                inputStreamReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if (serverSocket != null) {
            try {
                serverSocket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
@Test
public void client() {
    Socket socket = null;
    OutputStreamWriter outputStreamWriter = null;
    try {
        InetAddress localHost = InetAddress.getLocalHost();
        socket = new Socket(localHost,8899);
        OutputStream outputStream = socket.getOutputStream();
        outputStreamWriter = new OutputStreamWriter(outputStream);
        outputStreamWriter.write("你好,我是客户端");
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (outputStreamWriter != null) {
            try {
                outputStreamWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if (socket != null) {
            try {
                socket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

 1.2 传输图片

@Test
public void client2() throws IOException {
    InetAddress localHost = InetAddress.getLocalHost();
    Socket socket = new Socket(localHost,8899);
    OutputStream outputStream = socket.getOutputStream();
    FileInputStream fileInputStream = new FileInputStream(new File("1.jpg"));
    byte[] b = new byte[5];
    int len = 0;
    while ( (len = fileInputStream.read(b))!=-1 ){
        outputStream.write(b);
    }
    fileInputStream.close();
    outputStream.close();
    socket.close();
}
@Test
public void service1() throws IOException {
    ServerSocket serverSocket = new ServerSocket(8899);
    Socket accept = serverSocket.accept();
    InputStream inputStream = accept.getInputStream();
    FileOutputStream fileOutputStream = new FileOutputStream(new File("1_1.jpg"));
    int len = 0;
    byte[] b = new byte[5];
    while ( (len = inputStream.read(b)) != -1){
        fileOutputStream.write(b);
    }
    fileOutputStream.close();
    inputStream.close();
    serverSocket.close();
}

 1.3 服务端给客户端发数据

 public void client2() throws IOException {
     InetAddress localHost = InetAddress.getLocalHost();
     Socket socket = new Socket(localHost,8899);
     OutputStream outputStream = socket.getOutputStream();
     FileInputStream fileInputStream = new FileInputStream(new File("1.jpg"));
     byte[] b = new byte[5];
     int len = 0;
     while ( (len = fileInputStream.read(b))!=-1 ){
         outputStream.write(b);
     }
     socket.shutdownOutput();
     InputStream inputStream = socket.getInputStream();
     InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
     int len2 = 0;
     char[] c = new char[5];
     while ( (len2 = inputStreamReader.read(c))!= -1){
         String s = new String(c, 0, len2);
         System.out.print(s);
     }
     inputStreamReader.close();
     fileInputStream.close();
     outputStream.close();
     socket.close();
 }
 @Test
 public void service1() throws IOException {
     ServerSocket serverSocket = new ServerSocket(8899);
     Socket accept = serverSocket.accept();
     InputStream inputStream = accept.getInputStream();
     FileOutputStream fileOutputStream = new FileOutputStream(new File("1_1.jpg"));
     int len = 0;
     byte[] b = new byte[5];
     while ( (len = inputStream.read(b)) != -1){
         fileOutputStream.write(b);
     }
     OutputStream outputStream = accept.getOutputStream();
     outputStream.write("您好,我的图片已经收到了".getBytes());
     outputStream.close();
     fileOutputStream.close();
     inputStream.close();
     serverSocket.close();
 }