关闭

网络程序设计基础

381人阅读 评论(0) 收藏 举报
分类:

局域网与因特网


为了实现两台计算机的通信,必须要用一个网络线路连接两台计算机

服务器<-------------->网络<-------------->客户机

服务器是指提供信息的计算机或程序,客户机是指请求信息的计算机或程序,而网络用于连接服务器与客户机,实现两者相互通信。但有时在某个网络中很难将服务器与客户机区分开。我们通常所说的局域网(Local Area Network,LAN),就是一群通过一定形式连接起来的计算机。它可以由两台计算机组成,也可以由同一区域内的上千台计算机组成。由LAN延伸到更大的范围,这样的网络称为广域网(Wide Area Network,WAN)。我们熟悉的因特网(Internet),就是由无数的LAN和WAN组成的。

网络协议

网络协议规定了 计算机之间连接的物理,机械(网线与网卡的连接规定).电气(有效的电平范围)等特征以及计算机之间的相互寻址规则,数据发送冲突的解决,长的数据如何分段传送与接收等。就像不同的国家有不同的法律一样,目前网络协议也有多种,下面简单地介绍几个常用的网络协议。

1.IP协议

IP是Internet Protocol的简称,它是一种网络协议。Internet网络采用的协议是TCP/IP协议。Internet依靠TCP/IP协议,在全球范围内实现不同硬件结构,不同操作系统,不同网络系统的互联。在Internet网络上存在数以亿计的主机,每一台主机在网络上用为其分配的Internet地址代表自己,这个地址就是IP地址。到目前为止IP地址用4个字节也就是32位的二进制数来表示,称为IPv4。为了便于使用,通常取用每个字节的十进制数,并且每个字节之间用圆点隔开来表示IP地址,如192.168.1.1。现在人们正在试验使用16个字节来表示IP地址,这就是IPv6,但IPv6还没有投入使用。


2.TCP与UDP协议

在TCP/IP协议栈中,有两个高级协议是网络应用程序编写者应该了解的,即传输控制协议TCP与用户数据报协议UDP

TCP协议是一种以固接连线为基础的协议,它提供两台计算机间可靠的数据传送。TCP可以保证从一端数据送至连接的另一端时,数据能够确实送达,而且抵达的数据的排列顺序和送出时的顺序相同,因此,TCP协议适合可靠性要求比较高的场合。就像拨打电话,必须先拨号给对方,等两端确定连接后,相互才能听到对方说话,才知道对方回应的是什么。

HTTP,FTP和Telnet等都需要使用可靠的通信频道,例如,HTTP从某个URL读取数据时,如果收到的数据顺序与发送时不相同,可能就会出现一个混乱的HTML文件或是一些无效的信息。

UDP是无连接通信协议,不保证可靠的数据的传输,但能够向若干个目标发送数据,接收发自若干个源的数据。UDP是以独立发送数据包的方式进行。这种方式就像邮递员送信给收信人,可以寄出很多信给同一个人,而每一封信都是相对独立的额,各封信送达的顺序并不重要,收信人接收信件的顺序也不能保证与寄出的信件的顺序相同。


UDP协议适合于一些对数据准确性要求不高的场合,如网络聊天室,在线影片等。这是由于TCP协议在认证上存在额外耗费,可能使传输速度减慢,而UDP协议可能会更适合这些对传输速度和时效要求非常高的网站,即使有一小部分数据包遗失或传送顺序有所不同,也不会严重危害该项通信。


注意:一些防火墙和路由器会设置成不允许UDP数据包传输,因此,若遇到UDP连接方面的问题,应先确定所在网络是否允许UDP协议


0
0
查看评论

Android程序设计基础

3.1 Android应用程序架构Android程序的入口被称为Main Activity,带有界面的Android应用程序一般需要从Main Activity启动。目录结构Adnroid工程主要包括两个区域:源码区和资源区。Mainifest.xml 下面是一个标准的AndroidManifes...
  • yangshangwei
  • yangshangwei
  • 2016-01-06 20:34
  • 2424

Android程序设计基础--总结

Android App程序主要由4种类型组成:Activity(活动)、Service(后台服务)、Content Provider(内容提供商)、Broadcast Receiver(广播接收端) Android程序的设计流程(.apk): 1、视觉设计/UI [XML] ; 2、程序逻辑[Jav...
  • dy3200
  • dy3200
  • 2017-08-30 16:00
  • 150

java程序设计基础_陈国君版第五版_第六章习题

java程序设计基础_陈国君版第五版_第六章习题class Student{ int ID; String name; String sex; boolean leader; float gradeMath,gradeChinese,gradeEnglish; public void s...
  • gaoenbin626
  • gaoenbin626
  • 2016-03-09 10:27
  • 3154

java程序设计基础_陈国君版第五版_第四章习题

java程序设计基础_陈国君版第五版_第四章习题 import java.util.Scanner; public class Main4_1 { public static void main(String[] args){ Scanner scanner = new Scanner(S...
  • gaoenbin626
  • gaoenbin626
  • 2016-03-08 13:24
  • 3224

Python--基础程序设计

一 简单的程序1.Pyhton 会通过赋值给变量自动判定数据类型2.打印多项print(item1,item2,...,itemk) 3.程序一(计算圆的面积)radius = 20 # radius is now 20 area =radius * radius *3.14159 print(&q...
  • wangtao0921
  • wangtao0921
  • 2016-01-04 10:11
  • 447

java程序设计基础_陈国君版第五版_第五章例题

java程序设计基础_陈国君版第五版_第五章例题 public class Main5_1 { public static void main(String[] args){ int i; int[] a; a = new int [5]; for(i=0;i<5;...
  • gaoenbin626
  • gaoenbin626
  • 2016-03-08 16:25
  • 2656

2016级《程序设计基础(B)Ⅱ》实验6_动态规划

A递归的函数: #include using namespace std; /* if(a<=0||b<=0||c<=0) return mem[a][b][c]=1; 这样写是错的,因为当a,b,c都等于-9时显然mem[-9][-9][-9]是越界的 */ int ...
  • Cui_csdn
  • Cui_csdn
  • 2017-03-07 15:19
  • 195

《Python程序设计基础》在亚马逊当当京东互动出版网淘宝等各大书店上架

拙作《Python程序设计基础》(董付国编著,清华大学出版社,2015年8月出版,“十一五”国家级规划教材)陆续在亚马逊、当当、京东、互动出版网、淘宝以及各大书店上架,该书侧重于Python的基本语法,对Python 2.x和Python 3.x的异同进行了深入分析与对比,结合本人15年教学与开发工...
  • dongfuguo
  • dongfuguo
  • 2015-12-03 20:36
  • 972

推荐一本学Python的好书《Python程序设计(第2版)》

本书最大特点是信息量大、知识点紧凑、案例丰富、实用性强。全书200多个涉及不同行业领域的实用案例,没有多余的文字、程序输出结果或软件安装截图,充分利用宝贵的篇幅来讲解尽可能多的知识,绝对物超所值。本书作者具有15年程序设计教学经验,讲授过汇编语言、C/C++/C#、Java、PHP、Python等多...
  • dongfuguo
  • dongfuguo
  • 2016-12-24 16:21
  • 4611

java程序设计基础_陈国君版第五版_第九章例题

java程序设计基础_陈国君版第五版_第九章例题/** * 本测例会产生一个数组越界异常 * @author Richard * */ public class Main9_1 { public static void main(String[] args){ int i; int...
  • gaoenbin626
  • gaoenbin626
  • 2016-03-13 14:56
  • 846
    个人资料
    • 访问:81610次
    • 积分:1667
    • 等级:
    • 排名:千里之外
    • 原创:79篇
    • 转载:29篇
    • 译文:0篇
    • 评论:8条
    博客专栏
    文章分类
    最新评论