码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • JAVA - 网络编程


    网络编程

      • 网络编程
        • 1.1 网络编程概述
        • 1.2 网络编程的三要素
        • 1.3 IP地址
        • 1.4 InetAddress 类的使用
        • 1.5 UDP数据协议
        • 1.6 TCP数据协议

    网络编程

    1.1 网络编程概述

    • 计算机网络是指将地理位置不同的具有独立功能的多台计算机及外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统;
    • 网络编程是指在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换;

    1.2 网络编程的三要素

    IP地址

    • 给每一台网络设备指定一个标识,通过这个标识来确定操作对象,而IP地址就是这个标识号,也就是设备的标识;

    端口

    • 网络的通信本质上是两个应用程序的通信,通过增加一个标识来指定所使用的应用程序用以区分应用程序,如果说IP地址就是对网络设备的标识,那么端口就是对应用程序的标识;

    协议

    • 在计算机网络中,使多台网络设备进行连接和通信时需要遵守一定的规则,这些规则被称为网络通信协议,它对数据的传输格式,传输速率,传输步骤等做了统一的规定,通信双方必须遵守才能完成数据的交换,常见的协议有 TCP 协议和 UDP 协议;

    1.3 IP地址

    IP地址是网络中设备的唯一标识

    IP地址 分为两大类:

    • IPV4 :给每个连接在网络上的主机分配一个 32bit 的地址,按照 TCP/IP 规定,IP地址用二进制来表示,每一个IP地址长 32bit 也就是 4 字节,由于地址过长不方便记忆,IP地址通常被写成十进制的形式,例如 “192.168.100.101”;
    • IPV6 : 由于互联网行业的更新迭代,IP地址的需求量越来越大,但是网络地址资源有限,故通过 IPV6 重新定义地址空间,采用 128 位地址长度,每 16 个字节一组,分成 8 组十六进制数,使得可表达的位数增加;

    IP地址相关的常用命令:

    • ipconfig: 查看本机的IP地址;
    • ping IP地址: 检查网络是否连通;

    特殊IP地址:

    • 127.0.0.1: 是回送地址,可以代表本机地址,一般用来测试使用

    1.4 InetAddress 类的使用

    InetAddress 类代表一个互联网协议(IP)地址。

    • static InetAddress getByName(String host) : 确定主机的IP地址,给定主机名;
    • String getHostName(): 返回文本表示中的IP地址字符串;
    • String getHostAddress(): 返回文本表示中的IP地址字符串;

    1.5 UDP数据协议

    发送数据的步骤:

    1. 创建发送端的 Socket 对象( DatagramSocket )

    ​ DatagramSocket()

    1. 创建数据,并把数据打包

    ​ DatagramPacket( byte[] buf, int length, InetAddress address, int port )

    1. 调用 DatagramSocket 对象的方法发送数据

    ​ void send( DatagramPacket )

    1. 关闭发送端

    ​ void close()

    接收数据的步骤:

    1. 创建接收端的 Socket 对象( DatagramSocket( 端口号 ) )

    ​ DatagramSocket( int port )

    1. 创建一个数据包,用于接收数据

    ​ DatagramPacket( byte[] buf, int length )

    1. 调用 DatagramSocket 对象的方法接收数据

    ​ void receive( DatagramPackett dp )

    1. 解析数据包,并把数据在控制台显示

    ​ byte[] getData()

    ​ int getLength()

    1. 关闭接收端

    ​ void close()

    1.6 TCP数据协议

    发送数据的步骤:

    1. 创建客户端的 Socket 对象( Socket )

    ​ Socket( String host, int port )

    1. 获取输出流,写数据

    ​ OutputStreamgetOutputStream()

    1. 释放资源

    ​ void close();

    接收数据的步骤:

    1. 创建服务器端的 Socket 对象( ServerSocket )

    ​ ServerSocket( int port )

    1. 监听客户端连接,返回一个 Socket 对象

    ​ Socket accept()

    1. 获取输入流,读数据,并把数据显示在控制台

    ​ InputStream getInputStream()

    1. 释放资源

    ​ void close()

  • 相关阅读:
    Python学习笔记:Jupyter Notebook快速入门案例:学习时间与成绩的关系
    多视图几何(运动恢复结构sfm)---欧式结构只能获取和世界等比例的点云,这个地方可以解决项目之中的斜率问题,但是不能够解决实际高度的问题。
    机器学习第8天:SVM分类
    优化资源利用率:kubernetes中装箱的好处与挑战
    用Stable Diffusion生成同角色不同pose的人脸
    react代码编译+部署完成,运行前:如何修改配置文件以改变代码中对应变量的值?
    JavaScript系列从入门到精通系列第六篇:JavaScript中其他进制数字以及其他的数据类型强制转换为Boolean数据类型
    【21天学习经典算法】折半查找与折半插入排序(附Python完整代码)
    【Linux-RTC】
    什么牌子的运动耳机好用啊、运动耳机排行榜推荐
  • 原文地址:https://blog.csdn.net/jc15274630894/article/details/127769670
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号