网络编程项目(2) -- 7.16.2024

学习目标:

Linux

在这里插入图片描述

linux应用开发(高级编程):
(1)数据存储问题:文件和数据库
(2)多任务编程:进程 和 线程
(3)网络编程:tcp udp


学习内容:

网络编程: 3、通信协议网络程序设计


学习时间:7.16.2024


学习产出:

网络编程:
  1、c/s模式
  2、tcp/ip协议族
	应用层
	传输层  udp(视频、音频) 或者 tcp(网络密码)
	网络层
	网络接口层

  头 【 】 尾 校验

  3、基于udp协议c/s程序设计流程
         客户端:创建套接字--》发送数据包--》接收--》关闭套接字
         服务器:创建套接字--》绑定--》接收--》发送--》关闭套接字	

通信协议设计:
  问题:服务器是如何知道客户端要做什么操作?
  -

 {
  1、用户通信协议包格式的设计,通过组织和解析该协议包通信双方能够正常通信
  2、协议包:功能码  数据区
          功能码:数据包请求功能
          数据区:为了实现功能所需要的数据
  3、设计方案:
           (1)自定义字符串
                    a 两个特殊字符作为开头和结尾
                    b 一个特殊字符作为分隔符
		组包:利用字符串处理函数
		解包:利用字符串处理函数

               ##register$mike$123a##
               ##sucess##
               ##failed$name$repeat##
               ##failed$passwd$error##

            (2) 二进制报文格式:
                      设计一个描述报文头的结构体
                      设计多个描述报文体的结构体
     
                      通过报文头和报文体组合---表达各种协议包

		组包:memcpy()
		解包:指针强转和指针移动
        	
	    字符串和二进制的比较:
		字符串:1)定长 2)译码容易
		二进制:1)变长 2)灵活 3)空间利用率高 4)译码难
	
        
         (3)json格式
         (4)probuf

 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值