栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java十六

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java十六

1、使用网络 Socket 套接字编写客户端和服务器端,实现简单的数据通信,并可以收到回应。
服务器:

import java.net.ServerSocket;
import java.net.Socket;
import java.io.*;
import java.text.DateFormat;
import java.util.Date;

public class Server {
    public static void main(String[] args) {
        try {
            ServerSocket server = new ServerSocket(11111);
            System.out.println("服务器启动完毕");

            System.out.println("等待客户端连接...");
            Socket socket = server.accept();

            BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true);
            if (socket.isConnected()) {
                System.out.println("客户端名称为:" + socket.getInetAddress().getHostName() + " 连接成功");
                out.println("连接成功");
            }

            while (true) {
                String str = reader.readLine();
                if (str.equals("Time")) {
                    Date date = new Date();
                    System.out.println("客户端请求当前时间");
                    DateFormat format = DateFormat.getDateTimeInstance();
                    out.println(format.format(date));
                } else if (str.equals("exit")) {
                    System.out.println("bye");
                    out.println("连接断开");
                    break;
                } else {
                    System.out.println("数据:" + str);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

客户端:

import java.net.Socket;
import java.io.*;

public class Client {
    public static void main(String[] args) {
        try {
            Socket client = new Socket("localhost", 11111);
            OutputStream out = client.getOutputStream();

            BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
            BufferedReader localMessage = new BufferedReader(new InputStreamReader(System.in));

            System.out.println("从服务器" + client.getRemoteSocketAddress() + "返回的消息" + reader.readLine());

            while (true) {
                String message, str;
                message = localMessage.readLine() + "n";
                out.write(message.getBytes());

                str = reader.readLine();
                System.out.println("从服务器" + client.getRemoteSocketAddress() + "返回的消息" + str);
                if (str.equals("Bye")) {
                    System.out.println("连接断开");
                    break;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}



2、使用 DatagramSocket 类和 DatagramPacket 类实现客户端和服务器端数据通信。
客户端:

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;

public class Client {
    public static void main(String[] args) throws IOException {
        DatagramSocket client = new DatagramSocket(6667);
        String str = "Hello";
        byte[] data = str.getBytes();
        DatagramPacket packet = new DatagramPacket(data, data.length, new InetSocketAddress("localhost", 8888));
        client.send(packet);
        client.close();
    }
}

服务器端:

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class Server {
    public static void main(String[] args) throws IOException {
        DatagramSocket server = new DatagramSocket(8888);
        byte[] flush = new byte[1024];
        DatagramPacket packet = new DatagramPacket(flush, flush.length);
        String str = new String(packet.getData(), 0, packet.getLength());
        server.receive(packet);
        byte[] data = packet.getData();
        int len = packet.getLength();
        System.out.println(new String(data, 0, len));
        server.close();
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/921597.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号