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(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构