6.1. 网络基础知识

这篇具有很好参考价值的文章主要介绍了6.1. 网络基础知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在开始学习Java网络编程之前,首先让我们了解一些关于网络基础知识的内容。网络编程主要涉及到计算机网络、网络协议、数据通信等方面的知识。接下来,我将尽量详细、通俗易懂地介绍这些概念。

计算机网络

计算机网络是指将地理位置不同的计算机和其他设备通过通信链路(如光纤、无线电波等)连接在一起,实现资源共享和信息传递的系统。根据规模和覆盖范围,计算机网络可以分为局域网(LAN)、城域网(MAN)和广域网(WAN)等。

网络协议

网络协议是计算机网络中数据交换的规则和约定。这些规则定义了数据在网络中的传输格式、速率、编码方式等。常见的网络协议有:IP(Internet Protocol)、TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)等。

IP地址

IP地址是Internet协议(IP)为每个连接到网络的设备分配的唯一标识符。IPv4地址由4个0-255的数字组成,用点分隔,如192.168.1.1。IPv6地址则是由8组16进制数表示,用冒号分隔,如2001:0db8:85a3:0000:0000:8a2e:0370:7334。

端口号

端口号是用于区分同一设备上不同网络应用程序的整数标识符,范围为0-65535。其中,0-1023是保留的系统端口,通常用于系统和常见网络服务,如HTTP(80)、HTTPS(443)等。

TCP与UDP

TCP和UDP是传输层协议,用于在网络中传输数据。TCP是面向连接的协议,提供可靠的数据传输服务。它通过握手和确认机制确保数据在网络中的正确传输。UDP是无连接的协议,不提供数据传输的可靠性保证,但具有较低的传输延迟。

接下来,让我们通过一个简单的Java网络编程实例来了解如何使用Socket编程实现客户端和服务器之间的通信。

1. 创建服务器

首先,我们创建一个简单的服务器,监听一个端口,等待客户端连接:

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

public class SimpleServer {
    public static void main(String[] args) {
        int port = 8080;

        try (ServerSocket serverSocket = new ServerSocket(port);
             Socket socket = serverSocket.accept();
             BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
             PrintWriter out = new PrintWriter(socket.getOutputStream(), true)) {

            System.out.println("服务器已启动,等待客户端连接...");

            String inputLine;
            while ((inputLine = in.readLine()) != null) {
                System.out.println("客户端发送消息: " + inputLine);
                out.println("服务器已收到: " + inputLine);
                if ("exit".equalsIgnoreCase(inputLine)) {
                    break;
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

2. 创建客户端

接下来,创建一个简单的客户端,连接到服务器并发送消息:

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

public class SimpleClient {
    public static void main(String[] args) {
        String host = "localhost";
        int port = 8080;

        try (Socket socket = new Socket(host, port);
             BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
             PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
             BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in))) {

            String userInput;
            while ((userInput = stdIn.readLine()) != null) {
                out.println(userInput);
                System.out.println("服务器响应: " + in.readLine());
                if ("exit".equalsIgnoreCase(userInput)) {
                    break;
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

现在,您可以运行SimpleServer类和SimpleClient类,它们将分别启动服务器和客户端。在客户端控制台中输入消息,它将被发送到服务器,服务器会响应一个确认消息。当你在客户端输入"exit"时,通信将结束。

这个简单的示例展示了如何使用Java Socket编程实现基本的客户端和服务器之间的通信。在实际应用中,您可能需要处理更复杂的场景,例如多线程、并发连接、非阻塞I/O等。但是,这个示例应该足够帮助您开始学习Java网络编程。

希望这些内容对您有所帮助!如果您有任何问题或需要进一步解释,请随时提问。
推荐阅读:

https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA

https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

6.1. 网络基础知识文章来源地址https://www.toymoban.com/news/detail-467622.html

到了这里,关于6.1. 网络基础知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络编程 tcp udp http编程流程 网络基础知识

    OSI分层:应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 tcp/ip: 应用层 传输层 网络层 数据链路 ip地址:唯一标识一台主机 ipv4 32位 ipv6 128位 寻址 可以反映物理上的一个变化 MAC地址:48 固化在计算机中 ip地址又两部分构成:网络号+主机号 端口号:标识一个应用程序

    2024年02月13日
    浏览(18)
  • 网络基础知识&socket编程

    Linux 系统是依靠互联网平台迅速发展起来的,所以它具有强大的网络功能支持,也是Linux 系统的一大特点。互联网对人类社会产生了巨大影响,它几乎改变了人们生活的方方面面,可见互联网对人类社会的重要性! 本章我们便来学习一些网络基础知识,如果感兴趣的读者可以

    2024年02月10日
    浏览(10)
  • 一、网络编程之基础知识详解

    引言: 初学网络编程时会涉及到许多网络基础知识,这些知识点比较零碎,本文希望系统总结一次,以便在后续的学习和工作中能够快速查阅。 网络分层模型 OSI 七层模型 OSI 模型,也叫做七层模型, OSI 是 Open System Interconnection 的缩写,译为“开放式系统互联”。 OSI 模型是

    2024年02月09日
    浏览(16)
  • 《Java SE》网络编程基础知识归纳。

    目录 一、网络基本介绍 1、什么是网络通信? 2、网络 3、IP地址 4、域名 5、网络通信协议 6、Socket 二、TCP网络通信编程  1、应用实例1(字节流) 2、应用实例2(字节流) 3、应用实例3(字符流) 4、netstat 指令 三、UDP网络通信编程  1、基本介绍 2、基本流程 3、应用实例  

    2024年01月20日
    浏览(12)
  • 由浅入深Netty基础知识NIO网络编程

    阻塞模式下,相关方法都会导致线程暂停 ServerSocketChannel.accept 会在没有连接建立时让线程暂停 SocketChannel.read 会在没有数据可读时让线程暂停 阻塞的表现其实就是线程暂停了,暂停期间不会占用 cpu,但线程相当于闲置 单线程下,阻塞方法之间相互影响,几乎不能正常工作,

    2024年02月05日
    浏览(12)
  • Python网络编程(一)——了解IP和端口的基础知识以及socket的简单实现

    Python网络编程(一)——了解IP和端口的基础知识以及socket的简单实现 IP(Internet Protocol) 地址是唯一标识互联网上连接至计算机或其他设备的地址。每一个设备在 IP 网络中拥有一个不同的 IP 地址,它由 32 位二进制数组成,通常表示为四个从 0 到 255 的十进制数之间用 (.)

    2024年02月04日
    浏览(22)
  • C++网络编程 TCP套接字基础知识,利用TCP套接字实现客户端-服务端通信

    流式套接字编程针对TCP协议通信,即是面向对象的通信,分为服务端和客户端两部分。 1)加载套接字库( 使用函数WSAStartup() ),创建套接字( 使用socket() ) 2)绑定套接字到一个IP地址和一个端口上( 使用函数bind() ) 3)将套接字设置为监听模式等待连接请求( 使用函数

    2024年02月03日
    浏览(13)
  • 从零开始-学习网络必须掌握的基础知识

    从零开始!学习网络必须掌握的基础知识 完整的100个网络知识,可留言,会发送!点击关注,可获得网工大礼包哈

    2024年02月15日
    浏览(14)
  • 【Netty专题】【网络编程】从OSI、TCP/IP网络模型开始到BIO、NIO(Netty前置知识)

    我是有点怕网络编程的,总有点【谈网色变】的感觉。为了让自己不再【谈网色变】,所以我想过系统学习一下,然后再做个笔记这样,加深一下理解。但是真要系统学习,其实还是要花费不少时间的,所以这里也只是简单的,尽可能地覆盖一下,梳理一些我认为比较迫切需

    2024年02月06日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包