您的位置:首页 > 编程语言 > Java开发

JAVA学习笔记- Socket编程

2015-04-28 14:16 399 查看

客户端

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

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  socket编程 server client