网络编程三素概述

1.1网络编程概述
计算机网络

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

网络编程
●在网络通信协议下, 实现网络互连的不同计算机上运行的程序间可以进行数据交换

网络编程三要素

IP地址
●要想让网络中的计算 机能够互相通信,必须为每台计算机指定一个标识号, 通过这个标识号来指定要接收数
据的计算机和识别发送的计算机,而IP地址就是这个标识号。也就是设备的标识

端口
●网络的通信,本质上是两个应用程序的通信。每台计算机都有很多的应用程序,那么在网络通信时,如何区
分这些应用程序呢?如果说IP地址可以唯一标识网络中的设备,那么端口号就可以唯标识设备中的应用程序
了。也就是应用程序的标识

协议
●通过计算机网络可以使多 台计算机实现连接,位于同-一个网络中的计算机在进行连接和通信时需要遵守一定
的规则,这就好比在道路中行驶的汽车一定要遵 守交通规则一样。在计算机网络中,这些连接和通信的规则
被称为网络通信协议,它对数据的传输格式、传输速率、传输步骤等做了统规定, 通信双方必须同时遵守
才能完成数据交换。常见的协议有UDP协议和TCP协议

-------------------------------------------------------------------------------------------------------------------------------------------------------

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

IP地址分为两大类
●IPv4:是给每个连接在网络上的主机分配-个32bit地址。 按照TCP/IP规定,IP地址用二 进制来表示,每个IP地址长
32bit,也就是4个字节。例如一个采用二进制形式的IP地址是11000000 10101000 0000001 01000010”,这么长
的地址,处理起来也太费劲了。为了方便使用,IP地址经常被写成十进制的形式,中间使用符号".” 分隔不同的字节。
于是,上面的IP地址可以表示为“192.168.1.66" 。IP地址的这种表示法叫做“点粉十进制表示法”,这显然比1和0容
易记忆得多
●IPv6: 由于互联网的蓬勃发展, IP地址的需求量愈来愈大,但是网络地址资源有限,使得IP的分配越发紧张。为了扩大
地址空间,通过IPv6重新定义地址空间,用128位地址长度,每16个字节-组,分成8组十六进制数,这样就解决了网
络地址资源数不够的问题
1.3 IP地址
常用命令:
●ipconfig: 查看本机IP地址
●ping IP地址: 检查网络是否连通
特殊IP地址:
●127.0.0.1: 是回送地址,可以代表本机地址,- 般用来测试使用

1.4 InetAddress的使用
为了方便我们对IP地址的获取和操作, Java提供了一个类InetAddress 供我们使用
InetAddress:此类表示Internet协议(IP) 地址

 1 package com.Internet;
 2 /*
 3 InetAddress
 4     此类表示Internet协议(IP)地址
 5     public static InetAddress getByName (String host): 确定主机名称的IP地址。
 6     主机名称可以是机器名称,也可以是IP地址字符串
 7
 8     public String getHostName (): 获取此IP地址的       主机名
 9     public String getHostAddress (): 返回文本显示中的  IP地址字符串
10
11  */
12
13 import java.net.InetAddress;
14 import java.net.UnknownHostException;
15
16 public class InetAddressDemo {
17     public static void main(String[] args) throws UnknownHostException {
18 //        public static InetAddress getByName (String host): 确定主机名称的IP地址。
19 //                                                          主机名称可以是机器名称,也可以是IP地址
20
21 //        InetAddress ipaddress = InetAddress.getByName("DESKTOP-404DLDG");
22         InetAddress ipaddress = InetAddress.getByName("192.168.18.6");
23
24 //        public String getHostName (): 获取此IP地址的主机名
25         String hostName = ipaddress.getHostName();
26         System.out.println("主机名为" + hostName);
27
28 //        public String getHostAddress (): 返回文本显示中的  IP地址字符串
29         String hostAddressstring = ipaddress.getHostAddress();
30         System.out.println("ip地址为" + hostAddressstring);
31
32
33     }
34 }

端口
端口:设备上应用程序的唯一标识
端口号:用两个字节表示的整数,它的取值范围是0~65535。其中,O~ 1023之间的端口号用于-些知名的网
络服务和应用,普通的应用程序需要使用1024以上的端口号。如果端口号被另外-个服务或应用所占用,导
致当前程序启动失败

协议
协议:计算机网络中,连接和通信的规则被称为网络通信协议

UDP协议
●用户数据报协议(User Datagram Protocol)
●UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计
算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到
数据时,也不会向发送端反馈是否收到数据。
由于使用UDP协议消耗资源小,通信效率高,所以通常都会用于音频、视频和普通数据的传输
●例如视频会议通常采用UDP协议,因为这种情况即使偶尔丢失-两个数据包, 也坏会对接收结果产生大
影响。但是在使用UDP协议传送数据时,由于UDP的面向无连接性,不能保证数据的完整性,因此在传输
重要数据时不建议使用UDP协议

TCP协议
●传输控制协议 (Transmission Control Protocol)

●TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,
它提供了两台计算机之间可靠无差错的数据传输。在TCP连接中必须要明确客户端与服务器端,由客户端
向服务端发出连接请求,每次连接的创建都需要经过“三次握手”

●三次握手: TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠
第一次握手,客户端向服务器端发出连接请求,等待服务器确认
第二次握手,服务器端向客户端回送个响应, 通知客户端收到了连接请求
第三次握手,客户端再次向服务器端发送确认信息,确认连接

●完成三次握手, 连接建立后,客户端和服务器就可以开始进行数据传输了。由于这种面向连接的特性,
TCP协议可以保证传输数据的安全,所以应用十分广泛。例如上传文件、下载文件、 浏览网页等

原文地址:https://www.cnblogs.com/lsswudi/p/11438445.html

时间: 2024-08-25 09:31:40

网络编程三素概述的相关文章

网络编程模型及网络编程三要素

网络模型 计算机网络之间以何种规则进行通信,就是网络模型研究问题. 网络模型一般是指 OSI(Open SystemInterconnection开放系统互连)参考模型 TCP/IP参考模型 网络模型7层概述: 1.物理层:主要定义物理设备标准,如网线的接口类型.光纤的接口类型.各种传输介质的传输速率等.它的主要作用是传输比特流(就是由1.0转化为电流强弱来进行传输,到达目的地后在转化为1.0,也就是我们常说的数模转换与模数转换).这一层的数据叫做比特. 2. 数据链路层:主要将从物理层接收的数

iOS网络编程(三) 异步加载及缓存图片---->SDWebImage

@SDWebImage提供一个UIImageView的类别以支持加载来自网络的远程图片.具有缓存管理.异步下载.同一个URL下载次数控制和优化等特征. @SDWebImage的导入1.https://github.com/rs/SDWebImage 下载SDWebImage开源包2.将类包拖入工程,再导入MapKit.framework.ImageIO.framework两个框架3.SDWebImage是支持ARC的,在MRC的工程中要注意,可参考MRC工程配置ARC4.注意:SDWebImag

winform网络编程(三)

TcpClient类和TcpListener类 (1)TcpClient的用途: 用于在同步阻止模式下通过网络来链接.发送和接受流数据,在此情况下,必须有侦听此连接的请求,而侦听的任务就交给TcpListener实例或Socket实例 (2)TcpClient的两种方法连接到侦听器 第一种:创建一个TcpClient,并调用3个可用的Connect方法之一 第二种:使用远程主机的主机名和端口号创建TcpClient,此构造函数将自动尝试一个连接 (3)TcpClient的常用属性和方法 Avai

Linux 网络编程三(socket代码详解)

//网络编程客户端 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h>//htons()函数头文件 #include <ne

网络编程三---多线程/进程解决并发问题

前文列出的代码给大家展示了一个最简单的网络程序,但正如文章末尾所提的,这个最简单的网络程序最大的缺点是服务端一次只能服务一个客户端,就比如说你去吃饭,饭店只有一个服务员, 而且服务员在客户离开之前只能为一个客户服务,也就是说你只能等待你前面的客户吃好饭离开了,然后你才能进去吃饭,而在你吃饭的时候时候,你后面来的人都得等你吃完饭才能轮到你后面一个人吃饭.这种模式的缺点很明显,因为在你进去点好菜到买单前的这段时间,这个服务员都是空闲的,为什么不让服务员在这个空闲时间让其他客户进来服务员为他点菜呢?在

网络编程三要素

1.ip    端口号     协议 ip地址=网络号+主机号 端口号:用于表明消息给哪个程序处理的.其中0~1023是公认端口,1024~49151是注册端口.一共有0~65535个端口. UDP协议:1.将数据封装为数据包,传输时不需要建立连接. 2.每个数据包的限制大小64K中 3.不可靠传输,传输速度快 TCP协议:(打电话.文件传输) 1.面向连接,有特有的通道 2.传输比较大的数据 3.三次握手机制建立连接,是可靠协议 4.通信前必须建立连接:效率低 2.网络通讯(Socket通讯)

Java高并发网络编程(三)NIO

从Java 1.4开始,Java提供了新的非阻塞IO操作API,用意是替代Java IO和Java Networking相关的API. NIO中有三个核心组件: Buffer缓冲区 Channel通道 Selector选择器 一.Buffer缓冲区 缓冲区本质上是一个可以写入数据的内存块(类似数组),然后可以再次读取.此内存块包含在NIO Buffer对象中,该对象提供了一组方法,可以更轻松地使用内存块. 相比较直接对数组的操作,BufferAPI更容易操作和管理. 使用Buffer进行数据写入

UNIX网络编程1.1概述 1.2时间获取客户函数 1.4错误处理包裹函数

逻辑上socket处于应用层与传输层之间. ip,端口,协议,一起决定了网络的一个端点. #include <iostream> #include "unp.h" int main(int argc, char** argv) { int sockfd; int n; char recvline[MAXLINE + 1]; struct sockaddr_in servaddr; if (argc != 2) { err_quit("usage: a.out &l

java网络编程三次握手四次挥手

第一次握手:client设置syn=1,随机产生一个序列号seq=x,将数据包发送到server.client进入syn_send状态, 等待server确认. 第二次握手:server查看client发来的数据包syn=1,得知是client发来的连接请求.server设置syn=1 ACK=1 ack = x+1 seq = y,并将数据包发送到客户端.server进入syn_rcvd状态. 第三次握手:client得到server的确认,查看ACK=1 ack=x+1.然后,再给serve