网络编程的基本概念和术语

网络编程的基本概念和术语

1、IP地址

        IP地址的作用是标识网络中的一台计算机,网络中的每台计算机都有一个IP地址。IP地址相当于一个手机号码,使用这个地址可以访问一台计算机。IP地址具有统一的格式,IPv4地址是32位长度的二进制数值,占4个字节,如11000000 10101000 00000001 00000110.二进制的数值不便于记忆,可以把每个字节用一个整数(十进制)来表示。如192.168.1.1 。在同一个网络中,IP地址是唯一的。在终端(LINUX下)中输入

#ifconfig  

可以查看本机IP信息,显示如下

 

2、端口

        端口是计算机中为了表示计算机中访问网络的各种应用程序的编号。程序在访问网络或接受访问时,端口号会标识这一网络数据属于哪个程序。这里的端口并非网卡接线的端口,而是对应不同程序的逻辑编号,不是实际存在的。

端口号是一个16位的无符号整数,取值范围0~65535,低于256的端口号被系统保留,主要用于系统进程通信。如WWW服务使用的是80号端口,FTP服务使用21号端口。其他端口号都是自由的,编程时可以调用。

端口号(port)用于区分网络通信中主机上不同的网络应用程序。

3、域名

       域名是用来代替IP地址以标识计算机的一种直观名称。由于IP没有任何逻辑含义,不便于记忆。如百度的IP是202.108.22.43,而www.baidu.com 是一个便于记忆的名称。在访问计算机时,可以用这个域名代替IP地址。在终端中,可以ping [域名]查看域名对应的IP 。

4、TCP与UDP

         TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能顺序地从一端传到另一端。

 

         UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。提供的是面向无连接、不可靠的数据传输服务。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,不保证数据按顺序传递,故而传输速度很快。

5、套接字(socket)

          套接字,本意是插座,在网络中用来描述计算机中不同程序与其他计算机程序的通讯方式。

        程序访问网络进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口。
        区分不同应用程序进程间的网络通信和连接,主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP或UDP)和使用的端口号。通过将这3个参数结合起来,与一个“插座”Socket绑定,应用层就可以和传输层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。

       要通过Internet进行通信,至少需要一对套接字,其中一个运行在客户端,称之为ClientSocket,另一个运行于服务器端面,称为ServerSocket。根据连接启动的方式以及本地要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听、客户端请求、连接确认。

服务器监听是指 服务端套接字并不定位具体的 客户端套接字,而是处于等待连接的状态,实时监控网络状态。
客户端请求是由客户端的套接字提出连接请求,要连接的目标是服务器端套接字。为此, 客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器套接字的地址和 端口号,然后再向服务器端套接字提出连接请求。

        连接确认是当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的信息发送给客户端,一旦客户端确认了此连接,连接即可建立。而服务器端继续处于监听状态,继续接收其他客户端的连接请求。

使用套接字进行数据处理有两种基本模式:同步和异步。
同步模式:
       同步模式的特点是在通过Socket进行连接、接收、发送数据时,客户机和服务器在接收到对方响应前会处于阻塞状态,即一直等到收到对方请求进才继续执行下面的语句。可见,同步模式只适用于数据处理不太多的场合。当程序执行的任务很多时,长时间的等待可能会让用户无法忍受。
异步模式:
        异步模式的特点是在通过Socket进行连接、接收、发送操作时,客户机或服务器不会处于阻塞方式,而是利用callback机制进行连接、接收、发送处理,这样就可以在调用发送或接收的方法后直接返回,并继续执行下面的程序。可见,异步套接字特别适用于进行大量 数据处理的场合。
       使用同步套接字进行编程比较简单,而异步套接字编程则比较复杂。

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值