天气APP服务端——3.搭建业务处理框架(多进程)

文章目录

  • 一、端口采用80
  • 二、服务端的基本流程
    • 1.初始化
    • 2.等待客户端的连接
    • 3.客户端连接上来,fork一个子进程,父进程关闭通信socket,并回到Accept继续监听
    • 4.进入子进程的流程
    • 5.子进程关闭监听的socket
    • 6.进入业务处理进程主函数(子进程处理业务)
      • 6.1 读取客户端的业务请求报文
      • 6.2 将参数解析出来
  • 三、新用户第一次运行所需的业务
    • 1.新用户业务处理流程
      • (1)操作用户基本信息表
      • (2)操作全国站点基本信息表
      • (3)操作用户使用日志表
      • (4)操作数据库的注意事项
  • 四、同义词的妙用
  • 五、解析不同的业务报文
  • 六、接收到非法的业务代码处理方法
  • 七、短连接还是长连接

一、端口采用80

??当系统正式运行的时候,一般采用80端口,这个端口是HTTP服务的端口,但是不一定说是采用HTTP协议。如果用其他的端口。一般用户都会开放80端口,如果80端口都不开放,意味着外网都上不了。

二、服务端的基本流程

1.初始化

??

2.等待客户端的连接

3.客户端连接上来,fork一个子进程,父进程关闭通信socket,并回到Accept继续监听

4.进入子进程的流程

5.子进程关闭监听的socket

6.进入业务处理进程主函数(子进程处理业务)

??就是客户端给服务端发送业务代码,服务端解析业务代码,然后去处理对应的业务。我们不做真正的客户端程序,我们只是利用tcp协议,模拟一个客户端给服务端发送业务代码。

??每增加一种业务,我们只需要添加业务的处理函数就行了。(其实我觉得这里可以用设计模式了)

6.1 读取客户端的业务请求报文

??如果返回false,认为是客户端退出或网络原因,不写错误日志

天气APP服务端——3.搭建业务处理框架(多进程)
天气APP服务端——3.搭建业务处理框架(多进程)

2)注意一个事项:当将用户的信息插入表中,出现主键冲突时,服务端的是不去处理的。为什么会出现主键冲突呢,因为用户下载了软件之后,使用了一段时间将软件删除了,然后又将软件下载回来了。

天气APP服务端——3.搭建业务处理框架(多进程)
上面的信息解析出来之后,暂时放入一个结构体中。
天气APP服务端——3.搭建业务处理框架(多进程)
??连接数据库的操作是在子进程里面完成的, 我们在主函数中传参。如果在主函数中连接数据库是会产生冲突的。

那为什么不定义为局部变量呢,如果定义为局部变量如果程序是用exit退出,那么子进程的数据库连接对象得不到释放。(在资源释放问题里面解释有)

四、同义词的妙用

??这样创建同义词之后,如果某个用户想用到另一个用户的表的时候,写程序时,不用加上前缀。

??还有一个好处就是,当这个创建了同义词的表,前移到别的用户的时候,程序也不用修改。

天气APP服务端——3.搭建业务处理框架(多进程)

六、接收到非法的业务代码处理方法

??这个怎么处理呢,如果接收到了非法的业务代码,就是不再业务范围内。

??如果接收到非法的业务代码,服务端就不继续等待了。 在天气软件中服务端是部署在互联网上的,是有公网ip的,这就意味着会有很多系统来攻击我们。

如果报文格式不符合要求的话,就直接return。

天气APP服务端——3.搭建业务处理框架(多进程)
??如果是规定的报文范围内,会继续等待。
天气APP服务端——3.搭建业务处理框架(多进程)

七、短连接还是长连接

这是由客户端安排的。

文章知识点与官方知识档案匹配,可进一步学习相关知识网络技能树首页概览22076 人正在系统学习中

来源:行孤、

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年9月6日
下一篇 2021年9月6日

相关推荐