网络概念 :

首先.网络可以使不同物理位置上的计算机达到资源共享和通信的目的,在java中提供了专门的网络开发包----java.net来使用,当然也有随着时代技术的进步革新,会出现更多的API。

此文章主要介绍与网络相关的概念,包括 端口,域名,网络服务器,网络通讯协议等,当然不深,因为这里的每一个都是展开都是很深的。有机会大家自行去研究。这里讲的概念都是都是学习网络编程的基础知识,后面我们还可以说明一下,基于TCP协议的Socket编程和基于UDP协议的Socket编程,结合具体案例,介绍使用这两种通讯协议进行网络编程原理及步骤,在此过程中,也会融合一些其他知识点。

网络其实就是一组连接的计算机组,可以共享数据和通讯,可以根据你连接机子的范围分为:局域网,城域网,广域网。

局域网(LAN):局域网是小范围的连接在一起的网络 ,比如某个建筑物内 或者 网吧内。

城域网(MAN):城域网是覆盖城市或者城镇内广大地区的网络,是在一个城市范围内建立的计算机通信网。

广域网(WAN):城市,国家,全球范围。


OSI网络分层模型:

网络上的信息传递也是由不同的层级负责不同的工作任务,但由于各个计算机厂商都采用私有的网络模型,给通信带来了很多麻烦,   因此 国际标准规定 了 一套 国际标准化的 开放系统连接参考模型 (Open System Interconnection OSI ),OSI参考模型是一个开放式体系结构,它规定将网络分为七层,每一层在网络信息传递中都发挥不同的作用。 下面是七层结构 :

应用层:网络服务和最终用户的接口

表示层:数据的表示,安全和压缩

会话层:建立,管理和终止会话

传输层:定义传输数据的协议端口号,实现记忆流控制和差错校验

网络层:进行逻辑地址寻址,实现不同网络之间的路径选择

数据链路层:建立逻辑连接,实现硬件地址寻址,差错校验等功能

物理层:建立,维护,断开物理链接


TCP/IP模型:

另一个著名的模型是 鼎鼎大名的 TCP/IP模型,即传输控制协议/网络互联协议的简称。早期的tcp/ip协议是一个四层结构,在后来的使用过程中,借鉴OSI的七层参考模型,将网络接口层划分为物理层和数据链路层,形成一个五层结构,TCP/IP的前四层与OSI参考的前四层相对应,其功能也非常类似。


IP地址

ip地址的组成: ip地址有32位,4个二进制数组组成,每8位数用原点隔开,由于二进制不便于阅读,所以改成十进制。

ip地址的分类:ip地址包含网络地址和主机地址两部分,网络地址决定了可以分配的最大网络数,主机地址决定了一个网络中可以存在的计算机的最大数量,根据网络地址和主机地址位数的不同,IP地址又分为五类 A B C D  E  五类,常用前三种。

ip地址的网络地址由互联网数字分配机构统一分配,以保证ip地址的唯一性。

学会使用ipconfig命令查看网络设置

学会使用ping命令检测网络是否通畅


端口:它是一个16位的整数 ,范围是0-65535,端口是门,端口号是密码 ,是计算机与外界通信的入口和出口。


域名与DNS:域名就是www.XXX.com DNS :是解析域名的。


网络服务器:一般包含(邮件服务器,Web服务器)Web服务器由包含(Microsoft IIS,Apache,Tomcat,WebLogic ,BEA,WebSphere)等。


网络通信协议:计算机之间通信的规则。就好像我们对话使用的语言一样,是英文还是中文。

1.TCP/IP协议:规定其核心是IP协议和TCP协议

2.TCP协议:必须建立连接后,计算机才可以通信

3.UDP协议:无需建立连接,即可通信


Socket : 是一个通信的中转站用于连接客户端与服务器端

java.net 包可以使用


到这里在发散一张图帮助理解


模拟TCP协议的Socket代码:

客户端:

//模拟方法public void clientLink() throws IOException {Socket socket = new Socket("localhost",8080);OutputStream os = socket.getOutputStream();InputStream is = socket.getInputStream();//socket.shutdownOutput();String reply = null;//////socket.close();}

服务器端:

public void serveLink() throws IOException {ServerSocket serverSocket = new ServerSocket(8080);Socket socket = serverSocket.accept();InputStream is = socket.getInputStream();OutputStream os = socket.getOutputStream();//////socket.close();}

模拟UCP协议的Socket代码:

发送端:

private void to () throws IOException {InetAddress ia = null;String mess ="你好";ia = InetAddress.getByName("localhost");DatagramPacket dp = new DatagramPacket(mess.getBytes(),mess.getBytes().length,ia,8800);DatagramSocket ds = new DatagramSocket();ds.send(dp);ds.close();}

接收端:

private void from() throws IOException {byte[] buf = new byte[1024];DatagramPacket dp= new DatagramPacket(buf,1024);DatagramSocket ds = new DatagramSocket(8800);ds.receive(dp);String mess = new String(dp.getData(),0,dp.getLength());}

-over.song.2022.9.20

简谈计算机网络与网络编程相关推荐

  1. 八股总结(二)计算机网络与网络编程

    layout: post title: 八股总结(二)计算机网络与网络编程 description: 八股总结(二)计算机网络与网络编程 tag: 八股总结 文章目录 计算机网络 网络模型 网络体系结 ...

  2. 计算机网络与网络编程

    目录 知识点 网络协议模型 网络字节序 (很绕的概念) 什么是TCP 交换机与路由器 TCP三次握手 TCP四次挥手 TCP与UDP区别 概念 适用范围 TCP可靠性保证 TCP三次握手时产生的队列 ...

  3. Java Web 实战 15 - 计算机网络之网络编程套接字

    文章目录 一 . 网络编程中的基本概念 1.1 网络编程 1.2 客户端(client) / 服务器(server) 1.3 请求(request) / 响应(response) 1.4 客户端和服务 ...

  4. 计算机网络(二) | 网络编程基础、Socket套接字、UDP和TCP套接字编程

    目录 一.网络编程基础 1.1 为什么需要网络编程 1.2 什么是网络编程 1.3 网络编程中的基本概念 二.Socket套接字 2.1 概念 2.2 分类 2.3 Java数据报套接字通信模型 2. ...

  5. 【计算机网络】网络编程前置-udptcp/ip

    一.计算机网络基础知识 1.什么是计算机网络 ***** 把分布在不同地理位置的计算机与专门的网络设备用通信线路互相连成一个规模大.功能强的系统,从而使众多计算机可以方便地互相传递信息.共享软件.硬件 ...

  6. 谈一谈网络编程学习经验(陈硕)

    作者:陈硕  原文地址:http://blog.csdn.net/solstice/article/details/6527585 本文谈一谈我在学习网络编程方面的一些个人经验."网络编程& ...

  7. 谈一谈网络编程学习经验

    转自  陈硕 giantchen@gmail.com blog.csdn.net/Solstice 2011-06-06 PDF 版下载:https://github.com/downloads/ch ...

  8. 谈一谈网络编程学习经验(06-08更新)

    谈一谈网络编程学习经验 陈硕 giantchen@gmail.com blog.csdn.net/Solstice 2011-06-08 PDF 版下载:https://github.com/down ...

  9. 谈一谈网络编程的经验

    谈一谈网络编程学习经验 陈硕 giantchen@gmail.com blog.csdn.net/Solstice 2011-06-06 本文谈一谈我在学习网络编程方面的一些个人经验."网络 ...

最新文章

  1. 深度学习——Xavier初始化方法
  2. ITIL应用系列之服务台
  3. QT的QQmlScriptString类的使用
  4. mysql binlog rotate_binlog rotate引发的MySQL阻塞事件
  5. MySQL索引使用详解
  6. excel中线性函数_Excel中特别有用的不常用函数之Indirect函数
  7. java.lang.IllegalStateException: Ambiguous mapping found. Cannot map ' ' bean method
  8. BGP AS过滤列表
  9. mybatis模糊查询sqlserver和mysql的写法
  10. GitHub常用优秀开源Android项目
  11. dubbo源码解析-directory
  12. U盘不能格式化,磁盘管理里显示只读
  13. 【一起入门DeepLearning】中科院深度学习第五课:正则化「Regularization」和优化「Optimization」
  14. IP切换代理 免费资源共享
  15. nn,cnn(lenet5),c++代码
  16. html 模拟百度和模拟360
  17. 用Python打开视频文件
  18. 想进行快速钢网设计,还能保证钢网质量? 来看这里
  19. 使用74LS90和74LS16进行5和6进制计数器的设计实验
  20. 开展5G物联网体系架构、关键技术与行业应用集成创新高级研修班

热门文章

  1. 一次Wi-Fi入侵实录
  2. 如何删除PDF水印?PDF删除水印怎么操作
  3. 程序员的小幽默:让你笑到肚子痛的搞笑动图
  4. 匿名管道(Pipe)和命名管道(FIFO)
  5. 视频H.263与H.264的比较
  6. 内网架设FTP服务器(serv-u)
  7. 182_赵陈雄_java核心编程实验
  8. ElasticSearch(项目中常用的ES)
  9. vue的登录页面功能实现
  10. va_list的用法