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();
 }
复制代码

 

UDP

复制代码
@Test
public void sender() throws IOException {
    DatagramSocket datagramSocket = new DatagramSocket();
    byte[] bytes = "我是UDP发送的数据".getBytes();
    InetAddress localHost = InetAddress.getLocalHost();
    DatagramPacket packet = new DatagramPacket(bytes,0,bytes.length,localHost,9527);
    datagramSocket.send(packet);
    datagramSocket.close();
}
@Test
public void reciver() throws IOException{
    DatagramSocket datagramSocket = new DatagramSocket(9527);
    byte[] bytes = new byte[100];
    DatagramPacket packet = new DatagramPacket(bytes, 0,bytes.length);
    datagramSocket.receive(packet);
    System.out.println(new String(packet.getData(), 0, packet.getLength()));
    datagramSocket.close();
}
复制代码

 

URL 编程

复制代码
public void urlWrite() throws IOException {
    URL url = new URL("https://i.cnblogs.com/assets/adminlogo.png");
    HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();
    urlConnection.connect();
    InputStream inputStream = urlConnection.getInputStream();
    FileOutputStream fileOutputStream = new FileOutputStream("test.png");
    int len = 0;
    byte[] data = new byte[100];
    while ( (len = inputStream.read(data))!=-1 ){
        fileOutputStream.write(data,0,len);
    }
    fileOutputStream.close();
    inputStream.close();
    urlConnection.disconnect();
}
复制代码

 

posted @   写代码的小哥哥  阅读(63)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示