网络编程概述(一)

1.常用的编程模型由OSI和TCP/IP模型。

2.网络中主要的几个概念:协议,接口和服务。

协议是指在不同主机上相同层需要交互时的规则,常用的有TCP/IP,IPX/SPX,NetBEUI等。局域网中主要是IPX/SPX,基于互联网的则使用的是TCP/IP

接口是指在同一主机上不同相邻层之间交互的约定(要要提供什么服务和需要指定什么操作)。

服务是指为上层提供一定的需求功能,可分为面向连接的服务和无连接的服务。连接服务(基于电话模型)需要经历建立连接使用连接和释放连接,整个过程在一条有序的网络路线上传递数据(提供稳定性)。无连接的服务(邮政模型)把需要发送的数据分割成若干份后再带上目标地址然后无序的发往目的地址,需要在目的地址更具收到的包号码按顺序进行重新组装。(减少通信代价)

3.TCP/IP协议是Internet基础协议,也是电脑数据打包和寻址的标准方法。主要由以下4层构成:网络接口层,互联网层(IP),传输层(TCP),应用层(SMTP,DNS,FTP,Telnet)。

网络接口层主要控制网络硬件该怎样传输上层的IP数据(它管理了各种网络硬件的诸多协议)

互联网层是联通整个网络的关键层,负责基本的封包和寻址(IP协议),IP协议根据具体的网络环境在把不符合该网络环境下的IP数据包重新分包成该环境下的格式再发送。在接收端的IP模块会把各个小的数据块按照顺序组合成数据包传送给TCP或UDP模块。

传输层实现对等实体(电脑对电脑)的数据传输服务,对接收到的IP数据拆分,确保数据是否收到,是否需要重新传递。主要有TCP(传输控制协议)和UDP(数据报协议)2种协议,一个是面向连接一个是无连接的协议。TCP和UDP在接收到IP数据包后安装之前定义的顺序检查是否有丢失,是否需要继续发丢失内容。

应用层是对应用程序的沟通协议,包含所有的高层协议。如虚拟终端协议(Telnet)文件传输协议(FTP)电子邮件协议(SMTP)DNS域名系统HTTP超文本传输协议。

4.计算机一般0~1023为固定分配断端口,1024~65535为动态端口可以根据客户自己定于给具体程序。

5.记忆知识点

IPAddress类:

IPAddress newaddress1 = IPAddress.Parse("192.168.1.1");
IPAddress newaddress2 = IPAddress.Loopback;//127.0.0.1
IPAddress newaddress3 = IPAddress.Broadcast;//255.255.255.255
IPAddress newaddress4 = IPAddress.Any;//0.0.0.0
IPAddress newaddress5 = IPAddress.None;//255.255.255.255
IPHostEntry here= Dns.GetHostEntry(Dns.GetHostName());//地址封装对象

DNS类(域名系统):

IPAddress[] address= Dns.GetHostAddresses("ZB");//获取指定地址或电脑名字的ip集合
IPHostEntry ipHostEntry= Dns.GetHostEntry("10.2.15.48");//根据Ip地址获取IPHostEntry,它包装了IP信息,可以是远程IP地址
string hostName= Dns.GetHostName();//获取本机名字

IPHostEntry 类:为主机地址信息提供容器类

IPHostEntry HostEntry = Dns.GetHostEntry("www.baidu.com");
IPAddress[] IPaddress = HostEntry.AddressList;
string hostName= HostEntry.HostName;

IPEndPoint类:

IPAddress newaddress = IPAddress.Parse("192.168.1.1");
IPEndPoint ep = new IPEndPoint(newaddress, 8000);
AddressFamily AddressFamily = ep.AddressFamily;
IPAddress epAddress = ep.Address;
string port = ep.Port.ToString();
SocketAddress sa = ep.Serialize();//序列化为网络地址
string SocketAddress = sa.ToString();

Socket类:

Socket派生出TcpClient,TcpListener,UdpClient它们提供了直接的方法对网络进行操作,如果需要异步操作需要使用NetworkStream;

6.套接字:其实就是一条数据通道句柄。它由ip+传输协议(TCP或UDP)+端口组成。

.NET提供3种类型的套接字:流式套接字(stream也就是TCP),数据报套接字(就是UDP),原始套接字(Raw)。

Socket socket ;

属性:
socket.Blocking = false;//是否需要阻塞程序
socket.Connected;//当前状态
EndPoint rmEndpoint= socket.RemoteEndPoint;//远程终结点
EndPoint lcEndpoint = socket.LocalEndPoint;//本地终结点

方法:

Socket socket = new Socket("协议族","传输类型(UDP/TCP)","端口类型");//创建套接字,并且返回句柄。

IPAddress address3 = IPAddress.Parse("192.168.1.1");

IPEndPoint ep2 = new IPEndPoint(address3, 8000);
socket.Bind(ep2);//把创建的套接字绑定到本机IP和端口上
socket.Listen(100);//表示程序准备开始监听请求,其中参数表示最大接收请求数。
socket.Accept();//当有客户端连接到服务端则返回一个新的套接字,程序运行到该方法会阻塞,知道有客户端连接,一般放在循环中
socket.Connect("终结点");//此方法主要是客户端使用,负责把创建的套接字与本地地址绑定,与bind()对应
socket.Send(); socket.Receive();//传输和接收数据
socket.Shutdown();//关闭通信释

时间: 2024-10-31 11:11:09

网络编程概述(一)的相关文章

Android网络编程概述

Android网络编程概述 首先,应该了解的几个问题: 1)Android平台网络相关API接口 a) java.net.*(标准Java接口) java.net.*提供与联网有关的类,包括流.数据包套接字(socket).Internet协议.常见Http处理等.比如:创建URL,以及URLConnection/HttpURLConnection对象.设置链接参数.链接到服务器.向服务器写数据.从服务器读取数据等通信.这些在Java网络编程中均有涉及. b) Org.apache接口 对于大部

Linux网络编程------概述

提供了完善强大的网络功能. 1.完善的内置网络.协议丰富,和内核紧密. 2.提供大量Intenet的软件. 3.非常多的命令.完成文件传输. 4.远程访问支持. 5.安全可靠. Linux网络模型: 协议: 数据链路层协议:以太网协议 网络层协议:IP(Internet协议) ICMP(网际控制报文协议)  ARP(地址解析协议) 传输层协议:TCP(面向连接可靠传输)   UDP(非连接不可靠传输协议) 应用层协议:Telnet  文件传输协议(FTP TFTP),简单文件传输协议(SMTP)

java学习--基础知识进阶第十二天--网络编程概述、UDP协议、TCP协议

今日内容介绍 u  网络编程概述 u  UDP u  TCP 第1章 网络编程概述 1.1 网络协议 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样.在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式.传输速率.传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换. 网络通信协议有很多种,目前应用最广泛的是TCP/IP协议(Transmission Contro

JAVA学习第五十九课 — 网络编程概述

网络模型 OSI(Open System Interconnection)开放系统互连:參考模型 TCP/IP 网络通讯要素 IP地址 port号 传输协议 网络參考模型 七层OSI模型的基本概念要了解 网际层协议:包含:IP协议.ICMP协议.ARP协议.RARP协议. 传输层协议:TCP协议.UDP协议. 应用层协议:FTP.Telnet.SMTP.HTTP.RIP.NFS.DNS. 要真正实现网络通讯,首先要找到IP地址,IP地址是网络通讯的一大要素 IP地址:InetAddress 网络

网络编程概述

Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序. Java提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在 Java 的本机安装系统里,由 JVM 进行控制. 并且 Java 实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境. 一.网络基础 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大.功能强的网络系统,从而使众多的计算机可以方便地互相传递信息.共享硬件.软件.数据信息等

Unix下网络编程概述

这部分我要学习的是Unix下的网络编程,参照的书籍是W. Richard. Stevens的<Unix网络编程>卷一和卷二,由于本身现在从事的工作是java后台开发,对客户端-服务器的这种通信并不陌生. 学习Unix下网络编程开发不是以后要从事这方面工作,是想学一下计算机网络知识,包括其中各种概念的厘清,和熟悉C编程.网络编程. 网络编程说白了很简单,就是两个对象(机器.应用程序)之间相互通信.通信是一个信息交换的过程,像我们人与人之间交流说话就是一种通信过程,因为几乎每天都会与人交流,导致我

第1章 网络编程概述

1.1 网络协议通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样.在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式.传输速率.传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换.网络通信协议有很多种,目前应用最广泛的是TCP/IP协议(Transmission Control Protocal/Internet Protoal传输控制协议/英特网互联协议),它

网络编程三素概述

1.1网络编程概述计算机网络 ●是指将地理位置不同的具有独立功能的多 台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统 网络编程●在网络通信协议下, 实现网络互连的不同计算机上运行的程序间可以进行数据交换 网络编程三要素 IP地址●要想让网络中的计算 机能够互相通信,必须为每台计算机指定一个标识号, 通过这个标识号来指定要接收数据的计算机和识别发送的计算机,而IP地址就是这个标识号.也就是设备的标识 端口●网

java之网络编程

一.网络编程概述 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统. 网络编程就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换. 有人说,20世纪最伟大的发明不是计算机,而是计算机网络.还有人说,如果你买了计算机而没有联网,就等于买了电话机而没有接电话线一样. 二.网络模型 计算机网络之间以何种规则进行通信,就是网络模型研究问题. 网络模型一般是指OSI开发参