美文网首页
Java 网络编程基础

Java 网络编程基础

作者: 码农UP2U | 来源:发表于2020-03-19 23:11 被阅读0次

IP 地址所对应的对象

Java 提供了一个类,可以获取与 IP 地址相关的一些值,这里见的列举常用的方法,代码如下:

InetAddress localHost = InetAddress.getLocalHost();
System.out.println(localHost);
InetAddress byName = InetAddress.getByName("MacBook-Pro.local");
System.out.println(byName);
InetAddress byName1 = InetAddress.getByName("192.168.0.105");
System.out.println(byName1);
InetAddress byName2 = InetAddress.getByName("www.baidu.com");
System.out.println(byName2);
System.out.println(byName2.getHostAddress());
System.out.println(byName2.getHostName());

代码输出如下图:


InetAddress

TCP 服务端

在网络编程中典型的模式是 C/S 模式,C 是客户端,S 是服务端。
顾名思义,服务端是为客户端提供的服务的,因此服务端始终保持一个工作状态,而客户端是随着客户的意愿而发起的,当客户访问服务器,由服务器为客户进行服务,服务完毕后客户端就与服务端断开连接。
通常服务端会监听一个端口,等待客户端的请求,当客户端的请求到达后,服务端就可以和客户端进行通信了。
服务端的代码如下:

    public static void main(String[] args) throws IOException {
        // 创建 ServerSocket 对象
        ServerSocket serverSocket = new ServerSocket(10000);
        // 获取服务端的套接字对象
        Socket server = serverSocket.accept();
        // 接收客户端的输入
        // 获取输入流对象
        InputStream inputStream = server.getInputStream();
        byte[] buf = new byte[1024];
        int length = inputStream.read(buf);
        System.out.println("客户端传输的数据是:" + new String(buf, 0, length));

        // 返回客户端数据
        OutputStream outputStream = server.getOutputStream();
        outputStream.write("你好,收到".getBytes());

        // 关闭流对象
        outputStream.close();
        inputStream.close();
        server.close();
        serverSocket.close();
    }

TCP 客户端

客户端会去通过 IP 地址与 端口号 去连接指定的服务器,当连接到服务器以后就可以进行通信了,代码如下:

    public static void main(String[] args) throws IOException {
        // 创建客户端的套接字
        Socket client = new Socket("127.0.0.1", 10000);
        // 向外进行输出
        // 获取输出流对象
        OutputStream outputStream = client.getOutputStream();
        // 输出数据
        outputStream.write("hello java".getBytes());

        // 接收服务端返回的消息
        InputStream inputStream = client.getInputStream();
        byte[] buf = new byte[1024];
        int length = inputStream.read(buf);
        System.out.println("服务端的相应数据:" + new String(buf, 0, length));

        // 关闭操作
        inputStream.close();
        outputStream.close();
        client.close();
    }

以上便是一个简单的基于 TCP 的简单的网络编程。



微信中搜索 “码农UP2U” 关注我的公众号吧!!!

相关文章

  • Android应用开发:网络编程2

    网络编程 Java基础:网络编程 Uri、URL、UriMatcher、ContentUris详解 Android...

  • Http协议

    网络编程 Java基础:网络编程 Uri、URL、UriMatcher、ContentUris详解 Android...

  • 动脑学院架构篇-Java Socket编程基础及深入讲解

    【Socket】Java Socket编程基础及深入讲解 Socket是Java网络编程的基础,了解还是有好处的,...

  • JAVA技术知识体系

    java基础 java虚拟机 集合框架 网络编程-Socket 并发编程-Thread io 数据库操作-JDBC...

  • IO

    java网络编程 阻塞IO NIO 1. java网络编程 基础知识1.ip地址和端口号2.tcp/udp协议3....

  • java文艺复兴

    JAVA 语言基础 理解面向对象OO 常用类 集合 IO 多线程 GUI(??) 网络编程 JAVA WEB (...

  • 【Java基础】java网络编程

    源代码:https://gitee.com/AgentXiao/NetProgram 一、几个概念 1、网络 将不...

  • java网络编程基础

    Java为网络支持提供了java.net包,该包下的URL和URLConnection等类提供了以编程方式访问we...

  • Java基础:网络编程

    1. 网络编程概述 1.1 计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接...

  • Java基础——网络编程

    网络基础知识 通信协议 计算机网络中实现通信必须有一些约定,这些约定称为通信协议。通信协议负责对传输速率、传输代码...

网友评论

      本文标题:Java 网络编程基础

      本文链接:https://www.haomeiwen.com/subject/hwiryhtx.html