基于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、实现双方客户端,文件传输功能。
三、实现思路(解决方案):
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下开发环境搭建
五、本系列定期更新,直到软件完成,同时会将代码开源到 码云
Git下载地址
https://gitee.com/pete_jones/RemoteControl.git
本人也是C菜鸟一枚,如有问题咱们共同探讨,欢迎发Email给我 pete_jones@163.com