通信学了好多天了,也烦躁了好多天了。看着自己做出来的能聊天的那个小框框,顿时觉得有一种好欣慰的感觉。
我先说说我理解的通信。
我理解的通信就是:先创建一个服务器,就相当与是一个主机。然后客户端通过匹配ip地址和端口来连接。连接上之后,就根据自己给定的协议发送和接受消息。然后群聊就是,客户端按照协议给服务器发送了消息之后,服务器转发给所有的客户机。
然后在线画图板的原理跟上面的聊天室是一样的。只不过传的不是各个客户端发送的消息,而是图片的内容。画图板需要自己定义 的协议有很多,比如说图的类型,还有颜色,还有发送的顺序。
顺序是很重要的。比如说我发出消息的时候的顺序是 坐标x1,x2,y1,y2。但是在我接受数据的时候的顺序是 坐标x1,y1,x2,y2。那么画出来的直线就会变样了。还有最好服务端和客户端的画布大小保持一致。
在写代码的时候,出现了很多问题。比如说空指针,相信大家都很痛恨java.lang.NullPointerException。出现这个问题的情况有很多。对我来说,出现这个问题最大的原因就是传参没穿好。不是没有传参,就是传参之后忘记在构造方法里面写this.a = a;等等……尤其是在写在线画板的时候,画布老是传不好。。
胡哥经常说,通信其实最重要的就几行代码:
//服务器端 1、ServerSocket server = new ServerSocket(port);//创建 2、client = server.accept();//等待客户来连接 3、OutputStream os=client.getOutputStream();//获取输入输出流 InputStream is=client.getInputStream(); //客户端 1、Socket client = new Socket(ip,port);//创建 2、OutputStream os=client.getOutputStream();//获取输入输出流 InputStream is=client.getInputStream();
还有,在这次写通信这些内容的过程中,我觉得最有用的就是,System.out.println()语句;它在查找错误,调试程序等起了很大的作用,实在不愧为代码神器……
下午的时候,对着自己的程序,理了理思路。然后画了下面两个图~~
相关推荐
“自由光通信_Optisystem”是使用OptiSystem软件模拟自由空间光通信系统的过程。在自由空间光通信中,需要考虑的因素包括大气湍流引起的光束扩散、雨衰、雾衰等环境因素对信号质量的影响,以及接收端的跟踪和指向...
"bomb_jamming.rar_simulink 干扰_通信_跳频 干扰_跳频通信_跳频通信 干扰"这个压缩包文件似乎包含了与模拟跳频通信系统中敌对干扰,特别是梳状干扰(Comb Jamming)相关的Simulink模型。 Simulink是MATLAB环境下的...
"www.pudn.com.txt"可能是从某个网站(如www.pudn.com)下载的有关TCP通信的资源或示例。 总的来说,C#提供了丰富的工具和类库来简化TCP通信的实现,使得开发者能够专注于业务逻辑而不是底层网络细节。理解和掌握...
在标题"chuankoutongxin.rar_VB 串口_VB 串口通信_vb 串口 通信_串口 VB_串口通信 VB"中,关键词"串口"和"通信"表明我们将探讨如何使用VB来实现串行端口的通信功能。描述提到"VB实现串口通信,发送命令从而接收相应...
标题 "SCI.rar_2407 sci_CCS通信_DSP SCI_dsp通信_sci dsp" 提供的信息表明,这个压缩包包含的是关于使用Texas Instruments(TI)的TMS320C2407 DSP芯片在CCS(Code Composer Studio)环境下进行串行通信SCI(Serial...
标题中的“PSK.rar_双机通信_声卡_声卡 调制_声卡通信_解调 psk”揭示了本次讨论的核心是关于Phase Shift Keying(PSK)技术在双机通信中的应用,其中声卡被用作数据采集接口。PSK是一种数字调制方法,它通过改变...
在这个项目中,我们关注的是"串口通信_provezfo_",这可能是一个关于串口通信的实践教程或代码库,特别针对STC15F2K60S2单片机的串口1通信进行了测试,并且被验证为有效的。 STC15F2K60S2是一款常见的8位单片机,由...
在标题"红外通信_红外通信_红外_unhappyzvb_"中,我们可以推断出这个压缩包文件的内容可能与红外通信的编程实现有关,特别是针对一个名为"unhappyzvb"的项目或用户。描述提到“驱动代码”意味着里面包含了实现红外...
标题“m_扩频通信_扩频_多用户通信_developjt1_m序列_”表明我们将探讨的核心知识点是扩频通信,特别是与多用户通信相关的m序列在developjt1项目中的应用。 扩频通信的基本思想是将信息数据与一个称为扩频码的伪...
本文将围绕标题“21-USART—串口通信_串口通信_keil5usart_KEIL5连接串口_ancientutt”展开,详细介绍如何在KEIL5环境下配置并实现STM32F103的串口通信。 首先,我们来理解串口通信的基础知识。串口通信是一种串行...
标题"TCP.rar_C# TCP传输_C#的TCP通信_tcp vs2008_tcp数据通信_数据传输"暗示我们将关注C#编程语言,特别是使用Visual Studio 2008开发环境下的TCP通信实现。VS2008提供了丰富的.NET Framework库,使得C#开发者能够...
在标题“USBPort.rar_USB通信_USB通信_usbport”中,我们可以理解这是关于USB通信的一个资源包,可能包含源代码、文档或示例,旨在帮助开发者理解和实现USB端口的通信功能。"USBPort"可能是一个特定的库或者项目名称...
标题中的“Example35_DSP2833x_RS485_DSP与RS485通信_dsp28335_dsp;rs485_DSP28335”表明这是一个示例项目,专注于TI公司的TMS320F28335 DSP(数字信号处理器)与RS485接口之间的通信实现。这个示例可能是为初学者...
这个“WinS.rar_vb socket_vb winsocket_vb 通信_vb通信_winsocket”压缩包包含了一些关于VB中使用WinSocket进行通信的示例代码和资料。WinSocket,通常被称为Windows套接字,是Windows平台上的一个接口,它提供了...
本项目“UART.X.rar_SPI显示_串口通信_串行通信_实时采样”涉及到UART通信、SPI显示、串行通信以及实时采样等多个关键技术,下面将对这些知识点进行详细解释。 首先,UART是一种全双工的通信协议,它允许数据同时在...
总结来说,VC++中的管道通信是解决多进程通信问题的有效途径,尤其适用于父子进程或相关进程间的简单数据传递。通过学习和实践管道通信技术,开发者可以更好地设计和实现多进程协同工作的应用程序。在实际项目中,...
5. "www.pudn.com.txt"可能是相关资源的链接或说明文件,提供了更多关于该模拟SPI通信方法的详细信息。 总的来说,SPI通信协议因其简单和高效,在嵌入式系统中得到了广泛应用。通过计算机并口模拟SPI,开发者可以在...
压缩包子文件的名称“CH02-aurora_8b10b光通信 _aurora8B10B_8b10b_光通信_fpgaaurora8b10b_Aurora_源码.zip”进一步确认了里面包含的资源是与Aurora 8B10B光通信相关的源代码,特别是与FPGA实现相关的部分。...
标题中的“77433619steroFullFNL_大气通信_大气湍流matlab_光传输_大气湍流_大气光通信_源码.rar.rar”表明这是一个关于大气通信、大气湍流和光传输的MATLAB源码压缩包。这个文件很可能是为研究或教学目的而创建的,...
这简化了设计过程,只需配置相关参数即可。 4. **仿真与验证**:在Vivado的ModelSim或ISim环境中进行功能仿真,验证UART控制器的逻辑是否正确。同时,编写测试激励,模拟发送和接收不同数据的情况。 5. **硬件验证...