Java : java基礎(5) Socket網絡編程
阿新 • • 發佈:2018-10-14
基礎 例如 accep bytes address udp clas pac rec
使用 DatagramSocket 創建一個 UDP協議的Socket, 用DatagramPacket創建一個數據包,可以指定ip和端口號以及包的數據,用socket.send()可以發送這個數據包,代碼實例:
String str = "這是數據"; DatagramSocket socket = new DatagramSocket(); DatagramPacket packet = new DatagramPacket(str.getBytes(), str.getBytes().length, InetAddress.getByName("127.0.0.1"), 6666);// 指定接收端口socket.send(packet); socket.close();
接收數據示例: 使用receive()方法接收數據包, getData() 獲取字節數據.
DatagramSocket socket = new DatagramSocket(6666);// 指定本地端口 DatagramPacket packet = new DatagramPacket(new byte[1024], 1024); socket.receive(packet); byte[] arr = packet.getData(); System.out.println(new String(arr)); socket.close();
TCP協議的socket直接用 Socket類創建,例如: 可以直接用 getInputStream()獲取輸入流接收數據, 用getOutputStream()輸出流發送
Socket socket = new Socket("127.0.0.1", 6666); OutputStream os = socket.getOutputStream(); InputStream in = socket.getInputStream();
服務端需要使用 ServerSocket類來創建,使用accept()方法來獲取一個請求的socket,剩下的操作也是一樣.如:
ServerSocket serverSocket = newServerSocket(6666); Socket socket = serverSocket.accept(); InputStream is = socket.getInputStream(); OutputStream os = socket.getOutputStream();
Java : java基礎(5) Socket網絡編程