JAVA学习笔记(五十九)- Socket编程

来源:互联网 发布:数据字段进行etl拆分 编辑:程序博客网 时间:2024/06/02 02:59

客户端

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();    }}
0 0