当前位置:   article > 正文

实现网络版加法计算器_kaifawangluojisuanqi

kaifawangluojisuanqi

再谈“协议”

1. 基本概念

        我们知道,协议就是一种“约定”。套接字实现的网络通信的接口,在读写数据时,都是按照“字符串”的方式来发送和接收的,那如果我们要传输一些“结构化的数据”,该怎么办呢?

        这里我们就要提出两个概念:

(1)序列化:将对象的状态信息转化为可以存储或是可以传输的形式的过程,比如将结构体等类型转化为字符串类型;

(2)反序列化:将可以存储或是可以传输的形式转化为对象的状态信息的过程,比如将字符串类型转化为结构体等类型。

2. 具体实现

        比如,我们要实现一个网络版的加法计算器,有两种方法:

(1)客户端向服务器端发送一个形容“1+1”的字符串,该字符串以“+”为分隔,有两个操作数,且两个操作数都是整型,“+”即为运算符,且只能是“+”,同时数字与运算符间不能有空格。

(2)我们可以定义两个结构体来表示我们要交互的信息,一个用于传输要计算的数据,一个用于接收计算后的结果。发送数据时通过序列化将数据转换为一个字符串,接收时通过反序列化再将字符串转回结构体,具体实现代码如下:

1)要用到的头文件,以及结构体的定义:

  1. #pragma once
  2. #include <stdio.h>
  3. #include <sys/types.h>
  4. #include <sys/socket.h>
  5. #include <stdlib.h>
  6. #include <arpa/inet.h>
  7. #include <unistd.h>
  8. #include <netinet/in.h>
  9. #include <string.h
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/978206
推荐阅读
相关标签
  

闽ICP备14008679号