算法笔记实训笔记( 三 )


最后找到第一个有用的源码,介绍是把和合在一个文件里面,有了源码我还不知道怎么用,问,这里有涉及里面一些编辑的东西,这里记不得具体怎么解决的了,最后终于还是能把代码放到了该有的位置,跟着提示用服务器监听本地回环ip127.0.0.1和自定义的一个端口、客户端连接这个ip和端口,刚好在要下班那会跑通程序,用客户端发信息服务器能接收到,服务器发客户端也接受到了,获得巨大激励 。
晚上回去又看了相关文档,又猜测这个只要是相同ip和端口就能通信,然后我试了把电脑连接手机的热点,然后ip从回环ip改成热点的ip,端口我自定义,反正服务器监听的和客户端接入的是同一个,居然成功了,我继续延展,是不是别人可以用了,然后我想让室友帮忙测试,这里又去学习如何把源代码发给别人,明白了通过编译可以解决一些动态库的问题,然后把编译的文件打包发给室友,室友正常打开,这里遇到一个问题,一开始我电脑本地打开服务器,ip监听的是我网络上的ip,ip比如xxx.xxx.xxx.1端口比如5656;
然后我室友电脑打开客户端,我用跟我一样的操作,先检测他电脑连接我手机热点后的ip,他的是xxx.xxx.xxx.2,然后端口也连接5656,然后我服务器启动监听后他连接,结果居然失败了,然后我又突发奇想把他客户端准备连接的ip改成xxx.xxx.xxx.1(跟他电脑连接的网络不一样了),然后居然成功了,获得巨大激励
后面我理解了,客户端要接入的不是本地的ip,而是服务器端的ip,端口都要是同一端口 。
23/8/19
一个客户端占用一个端口
单线程服务器监听一个端口
多线程服务器 监听多个端口
群聊 私聊
我发觉这个有点像不定时的if 函数,而之所以不定时,是因为触发有人为因素,不一定是线性的过程,而只要触发了,就像满足了if的条件,发出某种信号,后面的槽函数接收到后,开始执行,就像执行if里面的代码
你的理解很准确!信号和槽机制的确类似于非线性的条件触发 。在经典的编程语言中,我们使用条件语句(如 if 语句)来响应特定的条件 。而在信号和槽机制中,信号就像是一种条件的触发器,当某个特定事件发生时,发射一个信号,然后与之相关联的槽函数会被执行 。
这种机制非常适用于事件驱动的程序设计,特别是在用户界面交互、多线程、异步操作等场景中 。它使得程序的各个部分可以松耦合地交互,不需要紧密耦合在一起,从而提高了代码的可维护性和可扩展性 。
通过信号和槽,程序的不同模块可以更灵活地协同工作,就像你所提到的触发条件和执行操作的关系一样 。这也是为什么信号和槽机制在很多GUI框架中被广泛使用的原因之一 。
深刻理解昨天学习的知识和代码;
完整认识了,真正上手了
昨天获得巨大激励,当天应该是热情饱满的,我有了把TCP协议和Qt相关网络通信控件弄懂的信心,我先是让把最初的和代码每行基本都注释一遍,然后只要遇到有不懂的逻辑、代码、关键字我就问,把这份文件吃透后
又去b站找到相关视频,总算找到一个基于Qt的通讯的教程,还是手把手边讲边实操的那种,我跟着视频手敲了包括客户端和服务器的所有代码,这次是比较系统的学习,当然在过程中遇到各种问题,我通过查网站、文档、等办法解决,在过程中发现让ai用比喻解释那一块比较容易理解,
23/8/20 终于把发文件但接收不到的问题解决了,添加新建接收文件的目录一、文件的传输,二、在线网络通讯 三、租用服务器
1、记下公网和私网ip地址