08
2017
08

基于GTK+3 开发远程控制管理软件(C语言实现)系列 一 开篇

近期趁公司没项目来,想学习一下C和GTK+3 ,顺道再学习一下Linux下有关网络编程方面的知识。


一、学习知识:


1、C基本语法


2、GTK+3 API学习 GUI相关知识学习


3、Glade使用及事件绑定,以及配合GTK+3 开发GUI界面。


4、Linux下Socket编程


5、Windows下基于MSYS2进行开发GTK的GUI界面。


二、终极目标:


最终程序实现的功能如下:


1、实现远程显示客户端屏幕功能。


2、实现鼠标坐标的远程控制功能。


3、实现双方客户端,进行文字聊天的基本功能。


4、实现双方客户端,文件传输功能。


三、实现思路(解决方案):

blob.png


1、客户端A 登录Server,将信息给Server。


2、Sever当前好友列表,反馈给客户端A


3、客户端A发出(远程控制,文字或者文件传输)请求和数据发给Sever。


4、Sever接到请求后,转交给被收端客户端B。


5、客户端B收到请求后,确认接收。


6、Sever将数据传送给你客户端B


选择此解决方案的理由:


家里的宽带和老家家里的宽带,上网方式都是通过ADSL+无线路由器的方式,而且由于IP4的地址资源短缺,网络商给分配的IP也都是内部网络的IP,所以目前就用服务器中转的方案来实现远程控制,双方客户端不需要知道彼此的IP地址,以及是在外网还是在内网,所有数据都到服务器上做中转。


此方案特点:技术实现起来简单,缺点就是服务器的通信压力大,效率不高。


其他技术方案解决方案:


P2P内网穿透


NAT穿透


这几个技术方案,本人没有研究过,不知道在技术实现上难度大不大,所以等研究明白了,再改用这几个技术方案。


四、系列目录

基于GTK+3 开发远程控制管理软件(C语言实现)系列 一 开篇

基于GTK+3 开发远程控制管理软件(C语言实现)系列二 Centos7下开发环境搭建

基于GTK+3 开发远程控制管理软件(C语言实现)系列三 Windows7开发环境搭建

基于GTK+3 开发远程控制管理软件(C语言实现)系列四 数据库设计

基于GTK+3 开发远程控制管理软件(C语言实现)系列五 使用CodeBlocks开发GTK3应用



五、本系列定期更新,直到软件完成,同时会将代码开源到码云。


码云Git地址 https://gitee.com/pete_jones/RemoteControl


本人也是C菜鸟一枚,如有问题咱们共同探讨,欢迎发Email给我 pete_jones@163.com



« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。