通信阶段的学习伊始,自己总有个习惯没有转变过来:我总是习惯性的将Server端和Client端放在一起编写,将它们的.java文件放在同一个package当中去。
这不仅是一个不好的编程方式,而且,更严重的是,有的时候它会导致一些难以预料的错误。
今天,这个不好的习惯就给我带来了很衰的恶果。
我将Server端和Client端发送消息的方法全部写成静态的,并封装在一个类当中,结果我定义的通信流程完全运行不了,调用的方法总是返回莫名其妙的结果。为了解决问题,我一行一行的查看代码,查了1个小时都没解决。最后,请老师帮我查看解决,他一样就指出了错误:最初的结构就出错了!!
我们知道,Server——Client模型当中的Server端和Client端分别占用了二个不同的端口port,这就意味着这是二个不同的程序!!二个不同的程序原则上是不能共享同一份资源的,比如图片,类,静态属性,静态方法 ——比如, 当某个静态属性同时被客户端C和服务端S调用,这个时候就会出现数据调用过程中值得变化,结果悲剧鸟。这有点类似于并发当中的数据锁定问题。
上述问题其实用面向对象的思想很好理解:在实际应用当中,Server和Client应该是隔绝开来的。Client端只知道,我向外(一个Socket)发送信息,并可以从中受到信息,至于是什么东东持有这个Socket,它不用知道。Sevre也应该是这样的。比如:我位于长沙的电脑上装了一个QQ,而腾讯的QQ服务器则远在浙江杭州,我这边的QQ能与别人通话,但是却不知道任何有关服务端的事情。
写上这段话,既是警醒自己,也是提醒别人:记得,通信是二个程序的事情!!
分享到:
相关推荐
在计算机科学领域,程序间的通信(Inter-Process Communication, 简称IPC)是一个关键的概念,它涉及到多个独立运行的程序如何有效地交换信息。在这个场景中,我们有一个使用VC7.0(Visual C++ 2003)编写的示例程序...
单片机双机通信数码管演示程序 Proteus 仿真是一个非常有价值的课程设计,它能够帮助我们更好地理解单片机双机通信的原理和实现过程,并且能够应用于各种工业控制、机器人控制、自动化控制等领域。
描述中提到的"从零学驱动(二)驱动与应用层简单消息通信",意味着这是一个初学者教程,展示了如何设计一个简单的程序,使得sys文件(驱动程序)和exe文件(应用程序)能够相互发送和接收消息。 在Windows操作系统...
标题中的“7,GPRS_UDP通信_sim800cstm32程序_GPRSSTM32_GPRS_”表明这是一个关于使用SIM800C模块在STM32单片机上实现GPRS UDP通信的项目。这个项目的核心在于通过STM3ATM32微控制器与SIM800C GSM/GPRS模块的交互,...
下面是一个简单的VB串口通信程序实例: ```vb Private Sub Form_Load() With MSComm1 .CommPort = 1 ' 设置串口号 .Settings = "9600,N,8,1" ' 设置串口参数 .RThreshold = 1 ' 设置接收缓冲区达到1个字符时...
DCDC电路控制程序及与上位机通信,boost控制电路及采样,485通信
三菱___(内有程序说明).zip三菱PLC编程案例源码资料编程控制器应用通讯通信例子程序实例三菱___(内有程序说明).zip三菱PLC编程案例源码资料编程控制器应用通讯通信例子程序实例三菱___(内有程序说明).zip三菱PLC编程...
本文将深入探讨标题"iic.rar_iic通信程序_模拟 IIC 程序_模拟IIC_模拟iic通信_读IIC"所涉及的I2C通信程序及其模拟实现,以及如何通过普通GPIO(通用输入/输出)来模拟I2C通信,并讲解读取I2C设备的流程。 I2C协议由...
2. **C++编程**:在VC++环境中,你可以创建一个C++项目,并包含WinUSB.lib库,这样就可以使用WinUSB API的函数了。在代码中,定义缓冲区用于存储发送和接收的数据,然后使用WinUSB_Init初始化设备,WinUSB_ReadPipe...
串行通信是单片机与PC机之间进行数据交换的一种常用方法,因其只需较少的硬件资源,例如一个串行接口,就能实现数据传输,因此在嵌入式系统中被广泛应用。"uart.rar"这个压缩包提供了关于单片机与PC进行串口通信的...
此压缩包文件“wave propagation_大气通信_大气湍流仿真_光通信仿真_大气湍流_大气湍流多步仿真程序_源码.zip”显然包含了与这些主题相关的代码和可能的实验数据,旨在模拟和理解大气环境对光波传播和通信性能的实际...
在这个“UART.rar”压缩包中,包含了一个51单片机双机通信的程序,这对于我们理解51单片机如何通过UART进行双机通信非常有帮助。51单片机是经典的8位微处理器,广泛应用于各种嵌入式设计,因其指令集简单、资源适中...
6. **示例程序分析**:“PC串口通信程序设计A.vi”可能是一个完整的LabVIEW串口通信程序实例,包含了上述所有功能。通过打开和分析此VI,可以直观地理解串口通信的实现过程,学习如何布局前面板控件和连线,以及在...
28335通信程序,RS422程序代码,源代码
总的来说,掌握DSP串口通信程序的编写与调试,对提升嵌入式系统开发能力大有裨益,无论是进行数据采集、设备控制还是与其他处理器间的通信,都离不开这一基础技能。通过深入学习和实践"DSP串口通讯程序.zip"中的内容...
matlab串口助手源程序,串口通信助手!
标题中的"W5300_Drv.rar_DSP W5300_DSP 以太网_DSP W5300_W5300_w5300驱动程序"表明这是一个关于W5300以太网控制器的驱动程序,适用于DSP(数字信号处理器)环境,特别是TMS320F28335型号的DSP。W5300是一款常见的...
开发者可以通过阅读这些文件,理解并学习如何在AVR单片机上编写和调试RS232通信程序。 总之,通过这个示例程序,开发者不仅可以了解到RS232通信的基本原理,还能学习到如何在AVR单片机的环境中具体实现和测试这种...
本项目专注于FPGA与MSP430之间的通信,这是一项关键的技术,用于实现硬件加速、数据处理和系统集成。以下是关于这个主题的详细知识: 1. **FPGA简介**: FPGA是一种可编程逻辑器件,用户可以自由配置其内部逻辑...