通信阶段的学习伊始,自己总有个习惯没有转变过来:我总是习惯性的将Server端和Client端放在一起编写,将它们的.java文件放在同一个package当中去。
这不仅是一个不好的编程方式,而且,更严重的是,有的时候它会导致一些难以预料的错误。
今天,这个不好的习惯就给我带来了很衰的恶果。
我将Server端和Client端发送消息的方法全部写成静态的,并封装在一个类当中,结果我定义的通信流程完全运行不了,调用的方法总是返回莫名其妙的结果。为了解决问题,我一行一行的查看代码,查了1个小时都没解决。最后,请老师帮我查看解决,他一样就指出了错误:最初的结构就出错了!!
我们知道,Server——Client模型当中的Server端和Client端分别占用了二个不同的端口port,这就意味着这是二个不同的程序!!二个不同的程序原则上是不能共享同一份资源的,比如图片,类,静态属性,静态方法 ——比如, 当某个静态属性同时被客户端C和服务端S调用,这个时候就会出现数据调用过程中值得变化,结果悲剧鸟。这有点类似于并发当中的数据锁定问题。
上述问题其实用面向对象的思想很好理解:在实际应用当中,Server和Client应该是隔绝开来的。Client端只知道,我向外(一个Socket)发送信息,并可以从中受到信息,至于是什么东东持有这个Socket,它不用知道。Sevre也应该是这样的。比如:我位于长沙的电脑上装了一个QQ,而腾讯的QQ服务器则远在浙江杭州,我这边的QQ能与别人通话,但是却不知道任何有关服务端的事情。
写上这段话,既是警醒自己,也是提醒别人:记得,通信是二个程序的事情!!
分享到:
相关推荐
标题“CancelSample_familiarfjb_twicenyf_驱动程序和应用程序通信_”涉及的是一个关于驱动程序与应用程序间通信的示例,特别是在IO操作中如何处理取消请求的主题。描述指出,当IO调用不立即完成时,驱动程序会启动...
6.如何在两个执行程序间进行数据通信?(Visual C++编程 源代码)6.如何在两个执行程序间进行数据通信?(Visual C++编程 源代码)6.如何在两个执行程序间进行数据通信?(Visual C++编程 源代码)6.如何在两个执行...
因此,一个成熟的驱动程序包,如本例中的"无线通信_LoRa_SX1278_驱动程序_1741142439.zip",对于降低开发难度、加快产品上市进程具有重要意义。开发者可以通过集成该驱动程序,将精力更多地集中在应用逻辑的开发上,...
“宽带_通信”强调的是UWB通信的另一个重要特性,即其使用的带宽远远超过常规通信系统。这种宽带能力不仅提供了高速数据传输的潜力,还可以支持多用户并发,提高频谱效率。 最后,虽然压缩包内的“www.pudn.com.txt...
LVDS通信程序则涉及了LVDS接口的设计和实现,这通常包括硬件描述语言(如Verilog或VHDL)编写的数据发送和接收模块,以及嵌入式系统的驱动程序开发。在软件层面,驱动程序需要处理LVDS接口的初始化、数据收发、错误...
在标题“CKTH.rar_串口通信_串口通信程序_读取串口”中,我们可以推测这是一个关于串口通信的程序资源包,包含了实现串口读取功能的代码或工具。描述指出,这个程序模块简单高效,适用于直接集成到其他项目中进行...
DCDC电路控制程序及与上位机通信,boost控制电路及采样,485通信
三菱___(内有程序说明).zip三菱PLC编程案例源码资料编程控制器应用通讯通信例子程序实例三菱___(内有程序说明).zip三菱PLC编程案例源码资料编程控制器应用通讯通信例子程序实例三菱___(内有程序说明).zip三菱PLC编程...
2. **C++编程**:在VC++环境中,你可以创建一个C++项目,并包含WinUSB.lib库,这样就可以使用WinUSB API的函数了。在代码中,定义缓冲区用于存储发送和接收的数据,然后使用WinUSB_Init初始化设备,WinUSB_ReadPipe...
3. **命名管道**:使用Kernel32库中的CreateNamedPipe和ConnectNamedPipe函数,用户层程序和驱动程序可以创建一个双向通信通道。这种方式提供了可靠的异步通信,适用于大量数据交换。 4. **文件系统流**:通过在...
标题中的"W5300_Drv.rar_DSP W5300_DSP 以太网_DSP W5300_W5300_w5300驱动程序"表明这是一个关于W5300以太网控制器的驱动程序,适用于DSP(数字信号处理器)环境,特别是TMS320F28335型号的DSP。W5300是一款常见的...
串行通信是单片机与PC机之间进行数据交换的一种常用方法,因其只需较少的硬件资源,例如一个串行接口,就能实现数据传输,因此在嵌入式系统中被广泛应用。"uart.rar"这个压缩包提供了关于单片机与PC进行串口通信的...
此压缩包文件“wave propagation_大气通信_大气湍流仿真_光通信仿真_大气湍流_大气湍流多步仿真程序_源码.zip”显然包含了与这些主题相关的代码和可能的实验数据,旨在模拟和理解大气环境对光波传播和通信性能的实际...
在这个“UART.rar”压缩包中,包含了一个51单片机双机通信的程序,这对于我们理解51单片机如何通过UART进行双机通信非常有帮助。51单片机是经典的8位微处理器,广泛应用于各种嵌入式设计,因其指令集简单、资源适中...
6. **示例程序分析**:“PC串口通信程序设计A.vi”可能是一个完整的LabVIEW串口通信程序实例,包含了上述所有功能。通过打开和分析此VI,可以直观地理解串口通信的实现过程,学习如何布局前面板控件和连线,以及在...
28335通信程序,RS422程序代码,源代码
matlab串口助手源程序,串口通信助手!
总的来说,MFC-TCP.rar是一个关于使用MFC进行TCP通信的实例,涵盖了多线程服务器设计、客户端连接处理、异步I/O操作以及线程间通信等多个关键点。对于想要深入理解和实践MFC和TCP通信的开发者来说,这是一个非常有...