通信学了好多天了,也烦躁了好多天了。看着自己做出来的能聊天的那个小框框,顿时觉得有一种好欣慰的感觉。
我先说说我理解的通信。
我理解的通信就是:先创建一个服务器,就相当与是一个主机。然后客户端通过匹配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实现串口通信,发送命令从而接收相应...
在这个项目中,我们关注的是"串口通信_provezfo_",这可能是一个关于串口通信的实践教程或代码库,特别针对STC15F2K60S2单片机的串口1通信进行了测试,并且被验证为有效的。 STC15F2K60S2是一款常见的8位单片机,由...
在标题"红外通信_红外通信_红外_unhappyzvb_"中,我们可以推断出这个压缩包文件的内容可能与红外通信的编程实现有关,特别是针对一个名为"unhappyzvb"的项目或用户。描述提到“驱动代码”意味着里面包含了实现红外...
本文将围绕标题“21-USART—串口通信_串口通信_keil5usart_KEIL5连接串口_ancientutt”展开,详细介绍如何在KEIL5环境下配置并实现STM32F103的串口通信。 首先,我们来理解串口通信的基础知识。串口通信是一种串行...
在标题“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平台上的一个接口,它提供了...
"ton.rar_underwater_扩频通信_扩频通信水下_水下扩频_通信 TON"这个压缩包文件显然包含了关于水下扩频通信的详细资料,如仿真研究和可能的实现方法。 扩频通信的基本原理是将信息信号分散到一个相对宽的频带上,而...
本压缩包文件“lvds.rar”包含了关于LVDS通信的相关程序和资料,这将帮助我们深入理解LVDS通信协议及其应用。 首先,LVDS的工作原理是通过发送端和接收端之间的差分信号对来传输数据。这种差分传输方式可以有效抑制...
总结来说,VC++中的管道通信是解决多进程通信问题的有效途径,尤其适用于父子进程或相关进程间的简单数据传递。通过学习和实践管道通信技术,开发者可以更好地设计和实现多进程协同工作的应用程序。在实际项目中,...
而“usb”可能是源代码文件、固件或者其他与USB通信相关的资源。 在实际应用中,实现C#与单片机的USB通信,开发者需要了解以下关键步骤: 1. **枚举设备**:通过枚举USB设备,找到要通信的目标设备。 2. **配置设备...
CAN(Controller Area Network)是一种广泛应用于汽车电子系统和工业自动化领域的通信协议,...通过学习这份资料,工程师可以掌握如何利用LabVIEW进行CAN通信开发,从而在汽车电子或其他相关领域实现高效的设备间通信。
5. "www.pudn.com.txt"可能是相关资源的链接或说明文件,提供了更多关于该模拟SPI通信方法的详细信息。 总的来说,SPI通信协议因其简单和高效,在嵌入式系统中得到了广泛应用。通过计算机并口模拟SPI,开发者可以在...
标题中的“AD1.zip_Optical OFDM_光ofdm_光通信_光通信 ofdm_光通信OFDM”指的是一个关于光正交频分复用(Optical Orthogonal Frequency Division Multiplexing, 简称光OFDM)技术的压缩文件包。光OFDM是一种在光纤...
标题中的“77433619steroFullFNL_大气通信_大气湍流matlab_光传输_大气湍流_大气光通信_源码.rar.rar”表明这是一个关于大气通信、大气湍流和光传输的MATLAB源码压缩包。这个文件很可能是为研究或教学目的而创建的,...
这简化了设计过程,只需配置相关参数即可。 4. **仿真与验证**:在Vivado的ModelSim或ISim环境中进行功能仿真,验证UART控制器的逻辑是否正确。同时,编写测试激励,模拟发送和接收不同数据的情况。 5. **硬件验证...
本文将深入探讨红外通信协议、红外技术在MATLAB环境中的应用以及无线红外通信的相关知识。 红外通信是一种利用红外光波进行信息传输的技术。它通过将数字信号转换为光信号,然后通过红外发射器发送出去,接收端再将...