网络编程:C/S与B/S

C/S与B/S的优缺点

C/S
优点:

  1. 由于客户端实现与服务器的直接连接没有中间环节因此响应更快
  2. 操作界面漂亮,形式多样,可以充分满足客户本身的个性化要求
  3. C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程

缺点:

  1. 需要安装专门的客户端程序,分布功能弱,针对面广,且不具备网络条件的用户群体,不能够实现快速部署和安装
  2. 兼容性差对不同的开发工具,具有较大的局限性,采用不同的工具需要重新改写程序
  3. 开发成本高,需要具有一定的专业水平的技术人员才能完成

B/S
优点:

  1. 具备分布式特点,可以随时随地进行查询,浏览等业务
  2. 业务拓展简单,通过增加网页即可增加服务器功能
  3. 维护方便,只需要改变网页,即可实现所以用户同步更新
  4. 开发简单

缺点:

  1. 表现要达到C/S程序的程度要花费不少精力
  2. 在速度和安全上需要花费巨大的设计成本,这是B/S架构的最大的问题

UDP协议的C/S实现

UDP协议没有建立来凝结特性,所以UDP协议没有自动记录对方IP和端口号的特点,每次发送数据时,必须亲自制定和对方的IP和端口号,只有这样才能把数据发送给对方

UDP通信过程:

  1. 调用socket创建套接字
  2. bind绑定固定的IP和端口号
  3. 调用sendto和recvfrom函数,发送和接收数据

ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);

功能:发送数据当后面两个参数位NULL和0时,功能相当于send,send专门用于面向连接的通信。但是对于像udp这种的无连接协议必须使用sendto,因此必须使用后两个参数

参数:
sockfd:套接字文件描述
*buf:存放数据缓存
len:缓存大小
flags:0
struct sockaddr *dest_addr:填写目标的IP和端口
socklen_t addrlen:dest_addr的大小

返回值:成功返回发送的字节数,失败返回-1

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr, socklen_t *addrlen);

功能:接收数据当后面两个参数位NULL和0时,功能相当于send,send专门用于面向连接的通信。但是对于像udp这种的无连接协议必须使用sendto,因此必须使用后两个参数

参数:
sockfd:套接字文件描述
*buf:应用缓存
len:缓存大小
flags:0
struct sockaddr *dest_addr,:填写目标的IP和端口
socklen_t *addrlen:dest_addr的大小

返回值:成功返回发送的字节数,失败返回-1

广播特点

  1. 一个人发,其他所有人都接收
  2. 广播只能在局域网内部有效,广播数据是无法越过路由器的,
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值