专题一:网络编程基础

来源:互联网 发布:图书python编程入门 编辑:程序博客网 时间:2024/05/22 06:59

        本专题先简要介绍IP地址和端口以及套接字等概念,这些知识是网络编程的基础。

1、IP地址

       IP地址用于唯一地标识网络中的一个通信实体,这个通信实体既可以是一台主机,也可以是一台打印机,或者是路由器的某一个端口。而在基于IP协议网络中传输的数据包,都必须使用IP地址来进行标识。

       IP地址是数字型的,IP地址是一个32位(32bit)整数,但通常为了便于记忆,通常把它们分成4个8位二进制数,每8位之间用圆点隔开,每个8位整数可以转换成为一个0~255的十进制整数,因此日常看到的IP地址常常是这种形式:202.9.128.88  .

IP地址被分为了A、B、C、D、E 五类,每个类别的网络标识和主机标识各有规则。

 

                                                 

       

                                 

2、端口

          端口是一个16位的整数,用于表示数据交给哪个通信程序处理。因此,端口就是应用程序与外界交流的出入口,它是一种抽象的软件结构,包括一些数据结构和I/O(基本输入/输出)缓冲区。

         不同的应用程序处理不同端口上的数据,同一台机器上不能有两处程序使用同一个端口,端口号可以从0~65535,通常将它分为如下三类。

          公认端口(Well Known Ports):从0到1023,它们紧密绑定(Binding)一些特定的服务。

          注册端口(Registered Ports):从1024到49151,它们松散地绑定一些服务。应用程序通常应该使用这个范围内的端口。

          动态和/或私有端口(Dynamic and/or Private Ports):从49125到65535,这些端口是应用程序使用的动态端口,应用程序一           般不会主动使用这些端口。


3、套接字

          应用层通过传输层进行数据通信时,位于运输层的TCP和UDP协议会同时为多个应用程序提供不同的并发的服务。此时为了区分不同应用进程和连接,于是就出现了套接字。

       通常套接字可以定义为:套接字是对网络中不同主机上应用进程之间进行双向通信的端点的抽象,一个套接字就是网络上进行通信的一端,提供了应用层进程利用网络协议栈交换数据的机制。

      生成套接字,主要有3个参数:通信的目的IP地址、使用的传输 层协议(TCP或UDP)和使用的端口号

        一般而言,Java 语言中的套接字有以下两种形式:

                TCP 套接字(由 Socket 类实现)

                UDP 套接字(由 DatagramSocket 类实现)



=====以上IP地址、端口的文字概念摘自《疯狂Java讲义》第3版 P763~764=====

1 0