在程序设计中 涉及数据存储和数据交换的时候 不管是B/S还是C/S模式 都有这样一个概念 这要求一台性能和配置都比较好的主机作为服务器 以满足数目众多的客户端进行频繁访问 但是对于一些数据交换的要求不主同 而且涉及到的通讯个体数目不多 如果还采用 一主机多客户机 的模式 便要求一台配置良好而且上安装了相关数据服务软件 这样会造成硬件和软件上的很多不必要的成本 这时Socket在点对点的平行对象之间的通讯的优势就就发挥出来了
其实对于Socket通讯来说 服务器和客户端的界定不像数据库服务器与客户端那样明显 甚至可以说Socket通讯里面的服务器和客户端只是相对的 因为网络通讯的对象基本上是处于平等层面的 只是为了方便对两台联网通讯的主机的描述才这样定义称谓的
由于在中Socket通讯的建立很容易 所以本文主要介绍一个Socket的比较典型的应用的流程 客户端向服务器发送请求 服务器接收到请求 并将服务器上的编码 发送到客户端 客户端得到数据后 再将这些数据写成文件 保存在客户端上
本文主要是对Socket的一个应用进行介绍 所以至于其原理在此没有深究 至于如何建立Socket还有如何实现网络的七层协议在此都没有进行相关研究和介绍 本文主要介绍如何实现一个用户想要的功能 即在两台主机之间进行通讯 通过网络来收发用户想要收发的数据
一 通讯流程图
[nextpage]
三 测试socket的连接方法 telnet远程登录
用户可以同时对客户端和端的Socket程序进行编写 然后进行联调 也可以一次只编写一个 然后通过下面的方法来测试Socket连接
一般通过远程登录来测试连接是否成功 比如测试本机的 端口是否能连接成功
运行->cmd->telnet
在没有运行对本机的 端口进行不断侦听的程序时 会出现连接失败的提示
如果连接成功 则会d出另外一个窗口
如果在侦听线程里面设置断点 通常连接成功后 就会在
Socket sRecmdTemp = sRecvCmd Accept();
之后的语句上断点
附近演示程序的说明
使用VS 创建
主要实现的功能是 主机A向主机B发请求 主机B将D盘image目录下的image jpg image jpg文件编码发送到主机B 主机B再解码并写成文件到E盘的image目录下
为了方便调试 演示程序将服务器和客户端同时放在本机上 即localhost或者 即本程序最终实现的效果就是将本机的D 盘image目录下的两个指定名称的传送到E盘image目录下 所以在运行本程序前 先在D:/image目录下放置两张命名为 image jpg image jpg的文件
lishixinzhi/Article/program/net/201311/11802局域网,是指“存在于某一个较小地理区域内的计算机网络”。通常把两台以上的电脑通过各种介质(比如双绞线、同轴电缆、电话线等等,空气也算是一种介质,这就是无线网络)连接起来,这就构成了计算机网络。专业的说法是一台电脑与一台打印机之间建立的连接也算是网络。通俗的说法,局域网就是“局部区域的网络”,比如分布在几十平方米之内,或相邻的几栋楼之内。大型局域网的分布范围可能会达到几平方公里。
主机,通常情况下,一般的个人电脑包括主机与显示器及键盘鼠标。这里的主机就是指主机箱,它里面装着主板、硬盘、内存、CPU、显卡、光驱、电源等等电脑部件。平板电脑与笔记本电脑,是把主机与显示器及输入设备集成到一起了。引申一下说,凡是在连在网络中的每一台计算机,都算是这个网络中的主机。比如你现在用的这台电脑,如果连入了Internet,那么你这台电脑也算是互联网上的一台主机。
服务器,你可以理解为“提供服务的机器”,当然这里仅只是指计算机方面。服务器有软件概念的服务器与硬件概念的服务器。硬件的服务器就是一台物理的电脑主机。软件的服务器是指提供服务的软件。把这个软件装在你的电脑上,并向其他电脑提供服务,那你的电脑就成为了一台服务器。一台硬件的服务器可以利用软件同时提供多种服务。就好像在同一时刻,你是哥哥(相对于你弟弟)、是弟弟(相对你哥哥)、是儿子(相对你父母)、是学生(相对你老师)、等等。提供什么服务它就是什么服务器。提供QQ登陆服务的它就是QQ服务器,提供邮件服务的它就是邮件服务器,提供文件存放中转的它就是文件服务器。无论软服务器还是硬服务器,都是没有十分明确的界定的。任意一台电脑都可以成为服务器。一个网络软件的服务端装在哪台电脑上,这台电脑就成为了服务器。总的来说,电脑就像一件工具。你拿它砍人它就是凶器,拿它切菜它就是菜刀。所以,服务器与主机其实都是电脑,只是看你拿它来作什么用。
补充一点,楼上回答的有些错误。局域网,并不一定有服务器。对等网是可以没有服务器的。并且服务器并不等于主机,在局域网中也没有“主机、子机”的说话,只有“服务器、客户机”的说法。家庭网络中,多台电脑连在一起,如果互相都没有为其他电脑提供服务,那就是没有服务器。所谓主机、子机就无从谈起。路由器可以算是服务器(路由器就是一台精简版的电脑),但现在的网络接入,路由器并非必不可少的。
使用传输层的TCP协议。
TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。
TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上 *** 作。
相关简介
TCP连接每一方的接收缓冲空间大小都固定,接收端只允许另一端发送接收端缓冲区所能接纳的数据,TCP在滑动窗口的基础上提供流量控制,防止较快主机致使较慢主机的缓冲区溢出。
作为IP数据报来传输的TCP分片到达时可能会失序,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。
TCP将保持它首部和数据的检验和,这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到分片的检验和有差错,TCP将丢弃这个分片,并不确认收到此报文段导致对端超时并重发。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)