通信阶段的学习伊始,自己总有个习惯没有转变过来:我总是习惯性的将Server端和Client端放在一起编写,将它们的.java文件放在同一个package当中去。
这不仅是一个不好的编程方式,而且,更严重的是,有的时候它会导致一些难以预料的错误。
今天,这个不好的习惯就给我带来了很衰的恶果。
我将Server端和Client端发送消息的方法全部写成静态的,并封装在一个类当中,结果我定义的通信流程完全运行不了,调用的方法总是返回莫名其妙的结果。为了解决问题,我一行一行的查看代码,查了1个小时都没解决。最后,请老师帮我查看解决,他一样就指出了错误:最初的结构就出错了!!
我们知道,Server——Client模型当中的Server端和Client端分别占用了二个不同的端口port,这就意味着这是二个不同的程序!!二个不同的程序原则上是不能共享同一份资源的,比如图片,类,静态属性,静态方法 ——比如, 当某个静态属性同时被客户端C和服务端S调用,这个时候就会出现数据调用过程中值得变化,结果悲剧鸟。这有点类似于并发当中的数据锁定问题。
上述问题其实用面向对象的思想很好理解:在实际应用当中,Server和Client应该是隔绝开来的。Client端只知道,我向外(一个Socket)发送信息,并可以从中受到信息,至于是什么东东持有这个Socket,它不用知道。Sevre也应该是这样的。比如:我位于长沙的电脑上装了一个QQ,而腾讯的QQ服务器则远在浙江杭州,我这边的QQ能与别人通话,但是却不知道任何有关服务端的事情。
写上这段话,既是警醒自己,也是提醒别人:记得,通信是二个程序的事情!!
分享到:
相关推荐
_nem_full_AT89S52_”似乎是一个编程或项目文件名,可能包含了多个版本或配置的标识符,但具体的含义需要更多的上下文信息才能明确。 描述中的“AT89S52 tempeture humidity full”表明这个项目或程序可能涉及到...
在计算机科学领域,程序间的通信(Inter-Process Communication, 简称IPC)是一个关键的概念,它涉及到多个独立运行的程序如何有效地交换信息。在这个场景中,我们有一个使用VC7.0(Visual C++ 2003)编写的示例程序...
标题“CancelSample_familiarfjb_twicenyf_驱动程序和应用程序通信_”涉及的是一个关于驱动程序与应用程序间通信的示例,特别是在IO操作中如何处理取消请求的主题。描述指出,当IO调用不立即完成时,驱动程序会启动...
6.如何在两个执行程序间进行数据通信?(Visual C++编程 源代码)6.如何在两个执行程序间进行数据通信?(Visual C++编程 源代码)6.如何在两个执行程序间进行数据通信?(Visual C++编程 源代码)6.如何在两个执行...
单片机双机通信数码管演示程序 Proteus 仿真是一个非常有价值的课程设计,它能够帮助我们更好地理解单片机双机通信的原理和实现过程,并且能够应用于各种工业控制、机器人控制、自动化控制等领域。
“宽带_通信”强调的是UWB通信的另一个重要特性,即其使用的带宽远远超过常规通信系统。这种宽带能力不仅提供了高速数据传输的潜力,还可以支持多用户并发,提高频谱效率。 最后,虽然压缩包内的“www.pudn.com.txt...
DCDC电路控制程序及与上位机通信,boost控制电路及采样,485通信
三菱___(内有程序说明).zip三菱PLC编程案例源码资料编程控制器应用通讯通信例子程序实例三菱___(内有程序说明).zip三菱PLC编程案例源码资料编程控制器应用通讯通信例子程序实例三菱___(内有程序说明).zip三菱PLC编程...
在给定的“完整串口通信程序(发送和接受)源代码.zip”压缩包中,包含了一个实现串口发送和接收功能的Vc++源代码项目。这个程序可以帮助开发者理解和学习如何在C++环境中进行串行通信。 首先,我们要理解串口通信的...
_FSK demodulator"表明这是一个关于FSK(频移键控)技术的压缩包文件,其中包含了FSK解调器的相关内容。描述指出这个程序专注于FSK的解调功能,可以帮助用户理解和实践FSK调制的基本原理。 FSK(频移键控)是一种...
总而言之,本压缩包文件提供了全面的仿真程序和技术支持,为无线通信和光通信领域的研究者和工程师们提供了一个强大的分析平台。通过利用这些先进的仿真工具,可以更好地理解和优化波在大气中的传播,特别是如何应对...
串行通信是单片机与PC机之间进行数据交换的一种常用方法,因其只需较少的硬件资源,例如一个串行接口,就能实现数据传输,因此在嵌入式系统中被广泛应用。"uart.rar"这个压缩包提供了关于单片机与PC进行串口通信的...
此压缩包文件“wave propagation_大气通信_大气湍流仿真_光通信仿真_大气湍流_大气湍流多步仿真程序_源码.zip”显然包含了与这些主题相关的代码和可能的实验数据,旨在模拟和理解大气环境对光波传播和通信性能的实际...
在这个“UART.rar”压缩包中,包含了一个51单片机双机通信的程序,这对于我们理解51单片机如何通过UART进行双机通信非常有帮助。51单片机是经典的8位微处理器,广泛应用于各种嵌入式设计,因其指令集简单、资源适中...
6. **示例程序分析**:“PC串口通信程序设计A.vi”可能是一个完整的LabVIEW串口通信程序实例,包含了上述所有功能。通过打开和分析此VI,可以直观地理解串口通信的实现过程,学习如何布局前面板控件和连线,以及在...
在文件列表中,"testS"可能代表一个测试服务程序,它可能包含了实现服务端进程间通信的代码。而"testui"则可能是对应的测试用户界面程序,它负责展示和接收用户的输入,同时与服务程序进行通信。这两个文件可能是...
3. **命名管道**:使用Kernel32库中的CreateNamedPipe和ConnectNamedPipe函数,用户层程序和驱动程序可以创建一个双向通信通道。这种方式提供了可靠的异步通信,适用于大量数据交换。 4. **文件系统流**:通过在...
28335通信程序,RS422程序代码,源代码
总的来说,掌握DSP串口通信程序的编写与调试,对提升嵌入式系统开发能力大有裨益,无论是进行数据采集、设备控制还是与其他处理器间的通信,都离不开这一基础技能。通过深入学习和实践"DSP串口通讯程序.zip"中的内容...