返回首页

网络编程基本概念,TCP/IP协议简介

242 2024-03-28 01:43 admin

一、网络编程基本概念,TCP/IP协议简介

    网络基础知识    网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯 网络编程中有两个主要的问题 一个是如何准确的定位网络上一台或多台主机 另一个就是找到主机后如何可靠高效的进行数据传输 在TCP/IP协议中IP层主要负责网络主机的定位 数据传输的路由 由IP地址可以唯一地确定Internet上的一台主机 而TCP层则提供面向应用的可靠的或非可靠的数据传输机制 这是网络编程的主要对象 一般不需要关心IP层是如何处理数据的     目前较为流行的网络编程模型是客户机/服务器(C/S)结构 即通信双方一方作为服务器等待客户提出请求并予以响应 客户则在需要服务时向服务器提出申请 服务器一般作为守护进程始终运行 监听网络端口 一旦有客户请求 就会启动一个服务进程来响应该客户 同时自己继续监听服务端口 使后来的客户也能及时得到服务     两类传输协议 TCP UDP    尽管TCP/IP协议的名称中只有TCP这个协议名 但是在TCP/IP的传输层同时存在TCP和UDP两个协议     TCP是Tranfer Control Protocol的简称 是一种面向连接的保证可靠传输的协议 通过TCP协议传输 得到的是一个顺序的无差错的数据流 发送方和接收方的成对的两个socket之间必须建立连接 以便在TCP协议的基础上进行通信 当一个socket(通常都是server socket)等待建立连接时 另一个socket可以要求进行连接 一旦这两个socket连接起来 它们就可以进行双向数据传输 双方都可以进行发送或接收操作     UDP是User Datagram Protocol的简称 是一种无连接的协议 每个数据报都是一个独立的信息 包括完整的源地址或目的地址 它在网络上以任何可能的路径传往目的地 因此能否到达目的地 到达目的地的时间以及内容的正确性都是不能被保证的     下面我们对这两种协议做简单比较     使用UDP时 每个数据报中都给出了完整的地址信息 因此无需要建立发送方和接收方的连接 对于TCP协议 由于它是一个面向连接的协议 在socket之间进行数据传输之前必然要建立连接 所以在TCP中多了一个连接建立的时间     使用UDP传输数据时是有大小限制的 每个被传输的数据报必须限定在 KB之内 而TCP没有这方面的限制 一旦连接建立起来 双方的socket就可以按统一的格式传输大量的数据 UDP是一个不可靠的协议 发送方所发送的数据报并不一定以相同的次序到达接收方 而TCP是一个可靠的协议 它确保接收方完全正确地获取发送方所发送的全部数据     总之 TCP在网络通信上有极强的生命力 例如远程连接(Telnet)和文件传输(FTP)都需要不定长度的数据被可靠地传输 相比之下UDP操作简单 而且仅需要较少的监护 因此通常用于局域网高可靠性的分散系统中client/server应用程序     读者可能要问 既然有了保证可靠传输的TCP协议 为什么还要非可靠传输的UDP协议呢?主要的原因有两个 一是可靠的传输是要付出代价的 对数据内容正确性的检验必然占用计算机的处理时间和网络的带宽 因此TCP传输的效率不如UDP高 二是在许多应用中并不需要保证严格的传输可靠性 比如视频会议系统 并不要求音频视频数据绝对的正确 只要保证连贯性就可以了 这种情况下显然使用UDP会更合理一些 lishixinzhi/Article/program/Java/hx/201311/25841

二、怎样算得上熟悉 TCP/IP 协议编程

写一个CS架构的程序,把客户机、服务器程序都写好,特别是服务器的。 能够处理多个并发连接。 服务器的并发处理如果是异步的或多路复用方式的,更好。这样子就算吧。

三、Linux系统中snmp协议编程

区别太多,只列举部分:

windows 是桌面系统, Linux一般是命令行系统, 也有桌面版本,如ubuntu, redhat。

windows 适用于普通用户, 傻瓜操作;linux主要用于作服务器,由专业人员使用和维护,一般使用的人都是开发者或专家,学习者一般使用linux桌面版本。

windows 的安全性能不如linux,linux上不会像windows一样要装一堆杀毒软件。

Linux的发行版本非常多, 性能各有各的特点。

Linux完全开源, 只有一些公司如redhat会收取一些服务费;windows则是微软版权

windows 上的游戏比较多, 而Linux不适合娱乐,没有酷狗,LOL这些方便的娱乐软件, 当然也有替代的 , 不过不太好用。

Linux上的QQ功能很差,可以使用webqq,不过功能也很弱,而windows上则很方便使用这些聊天软件。

四、网络编程什么是http协议http常用的请求方法是什么

目前通用的编程语言有两种形式:汇编语言和高级语言。

汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。

高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。

高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。

高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:

解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。

编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。

最常见的两种:GET方法和POST方法。 GET是无上传数据时使用的方法,POST是有比较大量的上传数据时使用的方法,比如发送一个文件时,或发一个图片时。

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片
上一篇:返回栏目
下一篇:c语言的用途