首页 > 编程语言 >十一、网络编程

十一、网络编程

时间:2023-11-10 20:25:11浏览次数:42  
标签:十一 xxx Socket 编程 网络 IP地址 数据包 端口号

一、网络编程概述

计算机网络:

是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

网络编程:

就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。

 

二、网络模型

概述:计算机网络之间以何种规则进行通信,就是网络模型研究问题。

网络模型一般是指 OSI(Open System Interconnection开放系统互连)参考模型 TCP/IP参考模型

          网络参考模型图

 

三、网络通信

三要素:

1、IP地址:InetAddress

网络中设备的标识,不易记忆,可用主机名

C类地址:前三部分是网络号段,最后一部分是主机号段

特殊的ip地址:

      127.0.0.1 本地回环地址(localhost)

      xxx.xxx.xxx.255 广播地址

      xxx.xxx.xxx.0   子网掩码

      xxx.xxx.xxx.1  网关

 

 

2、端口号 用于标识进程的逻辑地址,不同进程的标识

物理端口 网卡口

逻辑端口 我们指的就是逻辑端口

    A:每个网络程序都会至少有一个逻辑端口

    B:用于标识进程的逻辑地址,不同进程的标识

    C:有效端口:0~65535,其中0~1024系统使用或保留端口。.如果将来自己定义端口号的话,应该在1025~65535

 通过netstat -ano可以查看端口号

 

 

3、传输协议 通讯的规则

常见协议:TCP,UDP

UDP

将数据源和目的封装成数据包中,不需要建立连接;每个数据报包的大小在限制在64k;因无连接,是不可靠协议;不需要建立连接,速度快

编程:

UDP协议下发送端发送数据
1、创建Socket对象 java中对udp协议提供了一个类DatagramSocket
2、将要发送的数据封装成数据包 java提供了一个类DatagramPacket表示数据包
3、将数据包发送出去
4、关闭资源

UDP协议接收端接收数据
1、创建接收端的Socket对象
2、创建一个空的数据包,用于接收发送端发送过来的数据
3、调用方法接收数据,数据将会被存储到上面创建的数据包中
4、解析数据包,得到接收到的数据
5、关闭资源

 

 

TCP

建立连接,形成传输数据的通道;在连接中进行大数据量传输;通过三次握手完成连接,是可靠协议;必须建立连接,效率会稍低

编程:

    发送端:1、创建Socket对象,指定ip地址和端口号

        2、获取通道中的输出流

        3、向服务器写数据

        4、关闭资源

    服务器端:1、创建ServerSocket对象

         2、调用accept方法监听客户端的连接

            3、获取通道中的输入流

         4、接收数据

         5、关闭资源

 

注意事项:
1、客户端的Socket对象需要执行服务器的ip地址和端口号,服务器端的Socket对象需要绑定一个端口号
2、客户端和服务器端需要获取通道中的流,来进行输入或者输出
3、启动的时候要先启动服务器端

IP地址:要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机,在TCP/IP协议中,这个标识号就是IP地址

IP地址的获取与操作:为了方便我们对IP地址的获取和操作,java提供了一个类InetAddress 供我们使用

获取任意主机:getByName

主机名:getHostName

主机Ip地址:getHostAddress

 

四、Socket

Socket套接字: 网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。

Socket原理机制: 通信的两端都有Socket。

         网络通信其实就是Socket间的通信。

        数据在两个Socket间通过IO传输。

            Socket机制图解

 

标签:十一,xxx,Socket,编程,网络,IP地址,数据包,端口号
From: https://www.cnblogs.com/SIKE231310/p/17824942.html

相关文章

  • C语言编程 C语言入门
    1.初识C语言(1){C语言程序设计教程笔记}1基础框架/*#include<stdio.h>//格式intmain()//输入{printf("helloworld\n");//打印system("pause");//显示return0;//返回}/2注释单行//整段/...*/或Ctrl+k+c注释Ctrl+k+u解除注释//char字符类型'W'字母int数字150float小数//%......
  • 智安网络|数据库入门秘籍:通俗易懂,轻松掌握与实践
    在现代信息化时代,数据库已成为我们日常生活和工作中不可或缺的一部分。然而,对于非专业人士来说,数据库这个概念可能很抽象,难以理解。一、什么是数据库?简单来说,数据库是一个存储和管理数据的系统。它可以将大量的数据进行组织、存储和检索,以便我们能够方便地访问和使用这些数据。类比......
  • 初阶网工必备命令行 可以关注收藏!#网络工程师#
    关注公众号↑↑↑:IT运维大本营,获取60个G的《网工大礼包》......
  • Vue中网络图片懒加载工具
    在滑动列表视图中如果有网络图片需要加载直接给imag标签赋值src,会造成没有显示的item中图片也直接加载,势必浪费网络资源。创建一个插件,让列表中的item出显的时候在加载图片从而减少网络请求。具体方法就是给img标签添加一个新的属性暂时先保存对应的url,当item滑动出现到一定值时......
  • docker 移植标准用法(移植到没有网络的环境)
    制作自定义镜像dockerps#查看镜像dockerexec-itidbash#进入容器进行自动修改操作,安装软件通过容器提交制作镜像##-a是作者,-m是提交的记录信息$dockercommit-a"OxyeMa"-m"myOnlyoffice"容器id仓库名:tag保存新镜像,用于后续移植$dockersave-oMyOnl......
  • 编程思维—为什么缺乏逻辑的人往往看不到问题的本质?
    为什么缺乏逻辑的人往往看不到问题的本质?柏拉图柏拉图《理想国》中洞穴寓言:在洞穴隐喻中,柏拉图设想一群人居住在洞穴中,他们从出生起就被束缚在洞穴里,只能看到投射到洞穴墙壁上的外界的影子,而无法看到真实的世界。某一天,一个人挣脱了束缚,走出了洞穴,他先是感到阳光刺眼,随后看到了......
  • 泛微网络与浪潮信息KeyarchOS完成兼容性技术认证
    日前,泛微网络协同商务软件与浪潮信息KeyarchOS完成兼容性技术认证,经过共同测试,泛微协同商务软件e-cology与浪潮信息KeyarchOS完全兼容,在安全性、稳定性、兼容性方面均表现优异,达成稳定运行、性能优越目标。泛微网络科技股份有限公司成立于2001年,总部设立于上海,专注于协同管理软件......
  • windows忘记已连接的wifi网络密码如何查看
    1、点击右下角WIFI图标,2、网络和Internet设置3、点击右边图标旁的WLAN名称。4、点击“无线属性”--》“安全”--》“显示字符”即可进行查看......
  • 深入学习JavaScript ES8函数式编程:特性与实践指南
    ......
  • 《Unix/linux系统编程》教材第6章学习笔记
    |第5章|信号和信号处理信号和中断“中断”是从I/O设备或协处理器发送到CPU的外部请求,它将CPU从正常执行转移到中断处理。与发送给CPU的中断请求一样,“信号”是发送给进程的请求,将进程从正常执行转移到中断处理。在讨论信号和信号处理之前,先来回顾中断的概念和机制,这有助于正确......