1. 程式人生 > >Java : java基礎(5) Socket網絡編程

Java : java基礎(5) Socket網絡編程

基礎 例如 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 = new
ServerSocket(6666); Socket socket = serverSocket.accept(); InputStream is = socket.getInputStream(); OutputStream os = socket.getOutputStream();

Java : java基礎(5) Socket網絡編程