一.何谓C/S架构 C指的是client(客户端软件),S指的是Server(服务端软件),既然我们的的标题是网络编程基础, 那我们就一起来学习怎样写一个C/S架构的软件,实现服务端与客户端软件基于网络的通信. 二.必备计算机基础知识 1.众所周知,我们开发的软件都是应用软件,必须运行在操作系统上,操作系统则运行于硬件之上, 而应用软件是无法直接操作硬件的,而是调用操作系统的接口,由操作系统操纵硬件. 2.客户端和服务端之间信息传递的流程 <1> 客户端产生数据,存放于客户端软件内存中,然后调…
在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样.计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用.只有把它们联合起来,电脑才会发挥出它最大的潜力.于是人们就想方设法的用电线把电脑连接到了一起.但是简单的连到一起是远远不够的,就好像语言不同的两个人互相见了面,完全不能交流信息.因而他们需要定义一些共通的东西来进行交流,TCP/IP就是为此而生.TCP/IP不是一个…
socket.TLI.STREAM管道和FIFO为访问局部和全局IPC机制提供广泛的接口.但是,有许多问题与这些不统一的接口有关联.比如类型安全的缺乏和多维度的复杂性会导致成问题的和易错的编程.ACE的IPC SAP类属提供了统一的层次类属,对那些麻烦而易错的接口进行封装.在保持高性能的同时,IPC SAP被设计用于改善通信软件的正确性.易学性.可移植性和可复用性. IPC SAP类属 根据底层使用的不同IPC接口,IPC SAP类被划分为四种主要的类属,图2-1描述了这一划分.ACE_IPC_…
粘包现象: 如上篇博客中最后的示例,客户端有个 phone.recv(2014) , 当服务端发送给客户端的数据大于1024个字节时, 多于1024的数据就会残留在管道中,下次客户端再给服务端发命令时,残留在管道的数据会先发送给客户端,新命令产生的数据会排在上次命令残留数据的后面发送到客户端,即两次结果的数据粘在一起了, 这个就是粘包现象. 粘包现象的原理分析: # 运行一个软件或程序需要的硬件:CPU.内存.硬盘 # CPU负责执行:CPU执行需要数据,而数据从内存中取,最后可以把数据存到硬盘…
TCP的长连接 基于upd的socket服务 TCP黏包现象…
1.流程 服务器: 创建socket: 绑定端口: 监听: 监听到有连接请求,接受请求: 建立连接,开始对话. 客户端: 创建socket: 请求建立连接: 连接建立成功,开始对话. 2.实例代码 //服务器客户端简单聊天工具之服务器(tcp/ip) #include<stdio.h> #include<sys/types.h> #include<sys/socket.h> #include<errno.h> #include<netinet/in.h…
1.1 按1.9节未尾的步骤找出你自己的网络拓扑的信息. 1.2 获取本书示例的源代码(见前言),编译并测试图1-5所示的TCP时间获取客户程序.运行这个程序若干次,每次以不同IP地址作为命令行参数. 1.3 把图1-5中的socket的第一参数改为9999.编译并运行这个程序.结果如何?找出对应于所输出出错的errno值.你如何可以找到关于这个错误的更多信息? socket error: Address family not supported by protocol 1.4 修改图1-5中的…
网络编程基础 一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频,你得下个腾讯视频客户端才能看它的视频) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 为何学习socket一定要先学习互联网协议: 1.首先:本节课程的目标就是教会你如何基于socket编程,来开发一款自己的C/S架构软件 2.其次:C/S架构的…
网络基础知识 网络模型知识 OSI七层模型:(Open Systems Interconnection Reference Model)开放式通信系统互联参考模型,是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准化框架,简称OSI. TCP/IP模型:(tcp/ip reference model)TCP/IP参考模型,是一组用于实现网络互连的通信协议,其名称来源于该协议簇中两个重要的协议(IP协议和TCP协议). internet网络体系结构以TCP/IP为核心…
计算机网络的分类: 局域网(LAN) 指在一个较小地理范围内的各种计算机网络设备互联在一起的通信网络,可以包括一个或多个子网,通常局限在几千米的范围之内. 城域网(MAN) 主要由城域范围内的各个局域网之间互连构成. 广域网(WAN) 由距离较远的局域网与城域网互联构成的通信网络,通常是除了计算机设备以外,还要涉及一些电信通信方式. OSI分层模型: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 TCP/IP分层模型: 应用层                            …