MAC使用GTK创建界面

本文介绍了如何在MAC系统中利用GTK进行界面开发,通过回顾一个名为'医生手中宝'的项目,阐述了GTK程序的基本结构,包括gtk_main()函数的作用,以及创建窗口的主要步骤,如初始化、创建窗口对象和显示窗口。
摘要由CSDN通过智能技术生成

距离上次写博客已经时隔小半年,实习结束后就没再写过了,最近改简历,找实习。打算入前端的坑,并一直在坑里待下去了。

写简历时发现以前做过跟界面相关的一个东西,就是本科毕业实习做过的“医生手中宝”项目。觉得可能跟前端有点关系,大致回顾了一下:


今天修改简历,想到东软实习的时候做过的一个小项目:“医生手中宝”。实现的是模拟测量血压。
整体来看,这属于客户端和服务器之间的通信。该通信是通过socket建立的,至于什么是socket,会在下面讲到(等不及的可以先翻下去看看~);
客户端用ARM单片机来模拟,服务器就用电脑。
ARM通过外接键盘作为血压测量结果的输入,然后将该血压值传入服务器,服务器根据该值在界面上显示不同的血压值及相应的建议。
这里面涉及到Socket连接、ADC、血压计的开关、界面显示几个环节。



那么什么是Socket连接呢?
websocket不知道和socket是不是一种东西,在知乎上看到的websocket,先搬过来吧( https://www.zhihu.com/question/20215561@ Ovear
websocket也是一种协议,是HTML5出的。它俩的区别是:
1、http不支持持久连接(长连接、循环连接的不算),也就是一个request一个response(一次http连接可以有多个request-response对),客户端请求才会有回应,不请求就没有回应,是 被动的;
     websocket支持持久连接,一个reqeust后,无需再次request,服务器就能自动给客户端发消息,是 主动的。
2、http是无状态的,即你上次请求过,给他发了一些鉴别信息,发完后他立即就忘了你,下次你还得再发这些鉴别信息;
     websocket可以记住你的信息,这样就减少了资源浪费。

这里顺便说一下http协议中客户端和服务端是怎么沟通的,主要有两种方式,ajax轮询和long poll。
1、ajax轮询
客户端每隔一段时间就向服务器询问有没有信息,服务器回应有没有,一直这样循环。导致的问题是需要服务器响应速度很快,而且如果没有消息则会带来资源浪费。
2、long poll
跟ajax轮询差不多,都是采用轮询的方式,只不过采取的是阻塞性,客户端发起连接后,如果没消息,服务端就不返回response。直到有消息,完成一次http连接过程。完成后,客户端再次建立连接,周而复始。这种带来的问题是如果有多个客户端都发起了long poll,那将占用很大内存空间,造成资源浪费。

而websocket中,客户端只需要发起一个连接请求就行了,如果以后有消息,服务器端会主动告诉客户端。相当于推送吧。客户端跟接线员建立持久连接,当服务器有消息时就把消息通知给接线员,接线员就把消息转发给客户。


讲了半天,发现跟我要说的socket偏离了。。
socket是进程之间通信的一种方式,即调用这个网络库中的一些API函数实现分布在不同主机的相关进程之间的数据交换。简单说,就是我在地球,你在水星,我俩通过socket呼叫对方。
那我俩要建立通信需要以下条件:
1、IP地址:也就是我们的位置。
2、端口号:也就是各自通过哪个呼叫机。
3、协议:也就是我们的暗号
过程如下:
1、服务器打开一个通信信道(呼叫机),然后告诉客户我用的哪个端口(呼叫机);
2、服务器在这个端口上等待客户端的请求;
3、客户端收到服务器的端口号之后,向服务器发送请求报文,等待response;然后继续request,等待response......
4、服务端收到客户端的请求后,进行处理并发送response。
5、当客户端请求完毕,服务端发送完response。双方关闭各自的通道(呼叫机),服务器等待另一个客户的请求。
其实这里服务器告诉的端口号并不是专门为一个客户量身制作的,而是公共的,即很多客户端都可以通过这个端口向服务器发送请求。
一般这里用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值