JAVA學習筆記(五十九)- Socket編程,學習筆記socket
用戶端
import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.UnknownHostException;/* * 用戶端 */public class Client { public static void main(String[] args) throws IOException { /* * 向伺服器發送資料 */ // 1.定義伺服器的地址、連接埠、資料 InetAddress address = InetAddress.getByName("127.0.0.1"); int port = 8800; byte[] data = "你今天2了沒?".getBytes(); // 2.建立資料報,包含發送的資料資訊 DatagramPacket packet = new DatagramPacket(data, data.length, address, port); // 3.建立DatagramSocket對象 DatagramSocket socket=new DatagramSocket(); // 4.發送資料報 socket.send(packet); /* * 接收伺服器端響應的資料 */ //1.建立資料報,用於接收儲存響應的資料 byte[] data2=new byte[1024]; DatagramPacket packet2=new DatagramPacket(data2, data2.length); //2.接收響應資料 socket.receive(packet2); //3.讀取資料 String info=new String(data2, 0, packet2.getLength()); System.out.println("我是用戶端,伺服器說:"+info); //4.關閉資源 socket.close(); }}
服務端
import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;/* * 服務端 * * 伺服器端必須早於用戶端啟動 */public class Server { public static void main(String[] args) throws IOException { /* * 接收用戶端發送的資料 */ // 1.建立伺服器端的DatagramSocket,指定連接埠 DatagramSocket socket = new DatagramSocket(8800); // 2.建立資料報,用於接收儲存用戶端發送的資料 byte[] data = new byte[1024]; DatagramPacket packet = new DatagramPacket(data, data.length); // 3.接收資料 socket.receive(packet); // 4.讀取資料 String info = new String(data, 0, packet.getLength()); System.out.println("我是伺服器,用戶端說:" + info); /* * 響應用戶端 */ // 1.定義用戶端的地址、連接埠、資料 InetAddress address = packet.getAddress(); int port = packet.getPort(); byte[] data2 = "2了,你呢?".getBytes(); // 2.建立資料報,包含響應的資料資訊 DatagramPacket packet2 = new DatagramPacket(data2, data2.length, address, port); //3.響應用戶端 socket.send(packet2); //4.關閉資源 socket.close(); }}