Java 网络编程

markdown ## 简述 ```text 1. 要素 IP:Port 构成了 Socket 通信协议 2. 参考模型 OSI 7层协议 ```
## TCP实例 ```text # 服务端 System.out.println("server 启动"); Socket socket = null; try { socket = new ServerSocket(8889).accept(); InputStream inputStream = socket.getInputStream(); char[] chars = new char[10]; int read =0; InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf8"); while ((read = inputStreamReader.read(chars)) != -1){ for (int i = 0; i < read; i++) { System.out.print(chars[i]); } } socket.shutdownInput(); System.out.println("from" + socket.getInetAddress().getHostAddress()); OutputStream outputStream = socket.getOutputStream(); outputStream.write(new String("byby").getBytes()); outputStream.close(); } catch (IOException e) { throw new RuntimeException(e); } ``` ```text # 客户端 System.out.println("client 启动"); try { Socket socket = new Socket("127.0.0.1", 8889); OutputStream outputStream = socket.getOutputStream(); byte[] bytes = new String("hello world 你好").getBytes(); outputStream.write(bytes); outputStream.flush(); socket.shutdownOutput(); InputStream inputStream = socket.getInputStream(); char[] chars = new char[10]; int read =0; InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf8"); while ((read = inputStreamReader.read(chars)) != -1){ for (int i = 0; i < read; i++) { System.out.print(chars[i]); } } inputStream.close(); } catch (IOException e) { throw new RuntimeException(e); } ``` ## UDP实例 ```text #服务端 try { DatagramSocket datagramSocket = new DatagramSocket(8890); DatagramPacket datagramPacket; byte[] bytes = new byte[1024]; datagramPacket = new DatagramPacket(bytes,0,bytes.length); datagramSocket.receive(datagramPacket); byte[] data = datagramPacket.getData(); for (byte datum : data) { System.out.print((char) datum); } datagramSocket.close(); } catch (SocketException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } ``` ```text # 客户端 try { DatagramSocket datagramSocket = new DatagramSocket(); datagramSocket.connect(InetAddress.getLocalHost(),8890); DatagramPacket datagramPacket = new DatagramPacket(new String("hello world").getBytes(),0,new String("hello world").getBytes().length); datagramSocket.send(datagramPacket); datagramSocket.close(); } catch (SocketException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } ``` *

*[返回教程主页](https://www.monody.net/p/blog-page_3.html)*

*

评论