初学网络编程

news2025/1/19 22:25:57

网络编程是指编写能够在网络环境中运行,进行数据通信的程序的过程。它涵盖了从建立网络连接、发送和接收数据,到关闭连接等一系列操作。网络编程是开发网络应用程序的基础,它使得不同的计算机和设备能够通过网络进行数据交换和通信。

三个核心概念

IP(Internet Protocol)

是互联网协议的意思,它的主要作用是为互联网上的每一台设备分配一个唯一的逻辑地址,这个地址就是我们常说的IP地址。IP地址用于在网络中标识和定位设备,使得数据能够准确地从一个地方传输到另一个地方。IP地址根据版本可以分类为:IPv4和IPv6

InetAddress类

此类表示互联网协议 (IP) 地址。通常包括一个主机名和一个IP地址,并提供了获取和操作IP地址的方法,这些方法可以用于网络编程、服务器配置、主机管理等场景。是Java网络编程和系统配置的基础类之一。

InetAddress类的主要方法包括:

  1. getByName(String host): 通过主机名或IP地址字符串获取一个InetAddress对象。
  2. getLocalHost(): 获取本地主机的InetAddress对象。
  3. getHostName(): 获取InetAddress对象所代表的主机的主机名。
  4. getHostAddress(): 获取InetAddress对象所代表的主机的IP地址。
  5. getCanonicalHostName(): 获取InetAddress对象所代表的主机的规范化主机名。
  6. getAddress(): 获取InetAddress对象的原始IP地址(以字节数组表示)。
  7. isMulticastAddress(): 判断InetAddress对象是否为多播地址。
  8. isLoopbackAddress(): 判断InetAddress对象是否为回环地址。

因为InetAddress类没有公共构造函数,因此不能直接通过new关键字创建其对象。而是应该使用上述的静态方法来获取InetAddress对象。 

端口(Port)

端口是用于区分不同的网络服务或进程的。每个网络服务或进程都会绑定到一个特定的端口上,以便客户端能够通过该端口与之进行通信,是应用程序在设备中唯一的标识。

在计算机通信中,每个运行的进程或服务都需要一个或多个端口来接收和发送数据。端口号是一个非负整数,范围通常是从0到65535。

端口可以大致分为以下几类:

  • 公认端口:从0到1023,这些端口被系统或应用程序保留,通常用于知名的网络服务,如HTTP(80端口)、HTTPS(443端口)、FTP(21端口)等。

  • 注册端口:从1024到49151,这些端口是为没有公认端口号的应用程序保留的。这些端口可以由用户或应用程序进行注册,以提供特定服务。

  • 动态端口:从49152到65535,这些端口是临时端口,用于短暂的、一次性的服务。这些端口通常不由系统或服务预留,而是由应用程序在需要时动态分配。

协议(Protocol)

网络通信必须依赖于各种协议,如TCP/IP、HTTP、FTP等。这些协议定义了数据如何在网络中传输,包括数据的分组、路由、确认接收等过程,是数据在网络中传输的规则,确保了不同计算机和设备之间能够相互通信和协同工作。

TCP协议和UDP协议

TCP协议和UDP协议是计算机网络中两种主要的传输层协议,它们各自具有不同的特点和应用场景。

TCP协议,全称是传输控制协议(Transmission Control Protocol),是一种面向连接的、可靠的、字节流的传输层通信协议。TCP在发送数据前需要先建立连接,通过三次握手确保发送方和接收方之间的连接建立成功。

在数据传输过程中,TCP使用确认和重传机制,确保数据包的顺序性和完整性。如果数据包丢失或损坏,TCP会负责重传,直到数据被正确接收。因此,TCP协议适用于对数据可靠性要求较高的应用场景,如文件传输、电子邮件和网页浏览等。

UDP协议,全称是用户数据报协议(User Datagram Protocol),是一种无连接的传输层协议。UDP在发送数据时并不建立连接,而是直接将数据报发送到目标地址。它不保证数据的可靠传输,也不关心数据是否到达目的地,以及数据的顺序和完整性。因此,UDP协议的开销较小,处理速度通常比TCP快。UDP适用于对数据可靠性要求较低、传输经济的应用场景,如音频和视频流、在线游戏、语音通话等实时应用。这些应用可以容忍偶尔的数据丢失,但对传输速度有较高要求。

TCP协议下客户端向服务端发送文字信息实例

客户端代码

 服务端代码

运行服务端后运行客户端,客户端与服务端建立连接。

 客户端发送信息,服务端打印接收的信息。

 客户端输入-1结束消息发送,与服务端断开连接,服务端与客户端结束运行。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1587781.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Imagination APXM-6200 CPU:性能卓越,安全可信

随着消费类和工业应用行业的不断发展,对创新性能和效率的需求永不停歇,我们自豪地推出旗下 Catapult CPU 系列的第二款产品:Imagination APXM-6200 CPU 。这款 64 位的高效 RISC-V 应用处理器具有强大的 AI 功能及性能密度,能够为…

前端处理model.addtribute传来的值

比如开始时间和结束时间&#xff0c;后端传来的样式为 model.addAttribute("startDate", startDate); model.addAttribute("endDate", endDate); 前端接收为 [[${startDate}]]-[[${endDate}]] 如果前端为地图类型的echarts <script>var sitepvs …

B站大数据平台元数据业务分享

背景介绍 元数据是数据平台的衍生数据&#xff0c;比如调度任务信息&#xff0c;离线hive表&#xff0c;实时topic&#xff0c;字段信息&#xff0c;存储信息&#xff0c;质量信息&#xff0c;热度信息等。在数据平台建设初期&#xff0c;这类数据主要散落于各种平台子系统的数…

Android - 安卓概述

什么是安卓? Android 是一种基于 Linux 的开源操作系统&#xff0c;适用于智能手机和平板电脑等移动设备。 Android 是由 Google 和其他公司领导的 Open Handset Alliance 开发的。 Android 为移动设备的应用程序开发提供了统一的方法&#xff0c;这意味着开发人员只需为 And…

OpenAI允许前员工售股,估值达860亿美元

&#x1f989; AI新闻 &#x1f680; OpenAI允许前员工售股&#xff0c;估值达860亿美元 摘要&#xff1a;OpenAI最近向他们的部分前员工开放了股份出售的机会&#xff0c;此举是基于公司860亿美元估值的要约收购的一部分&#xff0c;由Thrive Capital领投。此前&#xff0c;…

第十届蓝桥杯省赛真题(C/C++大学B组)

试题 A: 组队 答案&#xff1a;490 试题 B: 年号字串 #include <bits/stdc.h> using namespace std;int main() {//26进制数 int n;cin>>n;string s "111";for(int i s.length() - 1;i >0;i--){s[i] A - 1 n % 26;n / 26;}cout<<s<<…

解决在Mac上的SourceTree中导入的项目拉取提交代码时总是弹出要输入登陆钥匙串问题

解决方案 复制以下代码到终端上执行一下&#xff1a; git config --global credential.helper osxkeychain 执行完成后&#xff0c;会跳出钥匙串的对话框此处填写的是电脑开机密码&#xff0c;并且勾选始终允许&#xff0c;否则&#xff0c;还是要一直跳出现在的这个登陆窗口…

【Linux系统编程】第一弹---背景介绍

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、Linux 背景介绍 1.1、发展史 1.1.1、UNIX发展的历史 1.1.2、Linux发展历史 2、开源精神 3、Linux内核官网 4、企业应用…

SQL Serve---查询

概要 1、order by子句 —默认asc&#xff08;升序&#xff09;、desc&#xff08;降序&#xff09; 2、distinct关键字 3、group by子句 4、聚合函数 —max()、min()、sum()、avg()、count() 5、having子句 6、compute子句 英文关键字 order by 排序 asc…

中国平安金融壹账通交付管理中心总经理崔羽先生受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 中国平安金融壹账通交付管理中心总经理崔羽先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“项目管理成与败&#xff0c;人才是第一要素”。大会将于5月25-26日在北京举办&#xff0c;敬请关注&#xff01; 议题简要…

玄子Share-使用 Pycharm 执行 Shell 脚本

玄子Share-使用 Pycharm 执行 Shell 脚本 Why&#xff1f; 为什么我要使用 Pycharm 执行 Shell 脚本呢&#xff0c;我直接使用 Linux 不行吗&#xff1f; 使用 Pycharm 执行 Shell 脚本的好处 我们的宿主机都是 WIndows 平台&#xff0c;若想编译 Shell 脚本&#xff0c;我…

关于SpringCloud,你了解多少?

Why SpringCloud&#xff1f; Spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发&#xff0c;如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等&#xff0c;都可以用 spring boot 的开发风格做到一…

前端js基础知识(八股文大全)

一、js的数据类型 值类型(基本类型)&#xff1a;数字(Number)、字符串&#xff08;String&#xff09;、布尔(Boolean)、对空&#xff08;Null&#xff09;、未定义&#xff08;Undefined&#xff09;、Symbol,大数值类型(BigInt) 引用数据类型&#xff1a;对象(Object)、数组…

使用Python写接口压测1软件安装

每一个新的东西&#xff0c;学习都是从软件安装开始&#xff0c;第一个章节老生常谈&#xff0c;但不是所有同学都是解除过得&#xff0c;所以从零开始吧&#xff01; 官网 https://www.python.org/下载-我是windows&#xff0c;下载其他根据自己系统; 点击下载 安装 下一步 简…

常用的苹果应用商店上架工具推荐

摘要 移动应用app上架是开发者关注的重要环节&#xff0c;但常常会面临审核不通过等问题。为帮助开发者顺利完成上架工作&#xff0c;各种辅助工具应运而生。本文探讨移动应用app上架原理、常见辅助工具功能及其作用&#xff0c;最终指出合理使用工具的重要性。 引言 移动应…

OpenHarmony南向开发-Docker编译环境

Docker环境介绍 OpenHarmony为开发者提供了两种Docker环境&#xff0c;以帮助开发者快速完成复杂的开发环境准备工作。两种Docker环境及适用场景如下&#xff1a; 独立Docker环境&#xff1a;适用于直接基于Ubuntu、Windows操作系统平台进行版本编译的场景。 基于HPM的Docker…

书客、月影、欧普护眼大路灯哪款好?三款落地灯真实对比测评

作为在照明电器领域资深的评测员&#xff0c;我对市面上各种新颖的照明家电有着深入的探索和研究。大路灯能够提供舒适健康的照明光线&#xff0c;目前正受到许多用眼人群的广泛欢迎。&#xff0c;当然随着大路灯的普及&#xff0c;市场中也充斥着一些低劣的大路灯产品&#xf…

JetBrains WebStorm 2024.1 发布 - 最智能的 JavaScript IDE

JetBrains WebStorm 2024.1 发布 - 最智能的 JavaScript IDE 请访问原文链接&#xff1a;JetBrains WebStorm 2024.1 (macOS, Linux, Windows) - 最智能的 JavaScript IDE&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org JetBr…

BI数据分析软件:行业趋势与功能特点剖析

随着数据量的爆炸性增长&#xff0c;企业对于数据的需求也日益迫切。BI数据分析软件作为帮助企业实现数据驱动决策的关键工具&#xff0c;在当前的商业环境中扮演着不可或缺的角色。本文将从行业趋势、功能特点以及适用场景等方面&#xff0c;深入剖析BI数据分析软件&#xff0…

Oracle体系结构:聊聊session与process

提前声明&#xff1a;本篇文章讨论的是专用服务器模式下的session和process&#xff1b;不讨论共享服务器模式&#xff0c;因为共享服务器现在真的应用的很少了&#xff0c;独占才是主流。共享服务器往往都是用在资源紧张的场合 &#xff0c;而且独占服务器模式有独立的PGA&…