`
- 浏览:
110830 次
- 性别:
- 来自:
长沙
-
在进入大二开始,我们这群IT初步者也开始了在通信阶段的学习、接触通信之前也只是隐隐约约地从周围同学那了解到它有多么地重要,在我们的学习中占很大一部分时间;仅仅这些还是没有让我们感觉到它的重要性、真正体现了它的重要性的是斌哥的一句话:“无通信不软件”。可见我们要想做像样的软件、还是得好好地运用通信方面的知识了。
在学习的开始、我们是通过命令行来与自己创建的服务器连接的,这样的通信让我们容易接受和了解、我们自己 创建服务器的过程比较简单、只是负责接收来自命令行(即客服端)的消息并将其打印出来;其创建代码:ServerSocket
ss=new ServerSocket(port);这里ss就是创建的服务器、而port是自己需要给定的端口;关于这个端口、一般我们的电脑拥有的端口是0-65535;而其中0-1024的端口编号称为“知名端口”这是电脑机器已经设置好了的端口号,以便用于连接网络等各种其他网络连接;服务器创建好了后、我们要让它处于等待连接状态,Socket client=ss.accept();这样我们就可以用一个客服端来连接了。。。。
服务器创建好了后、我们需要创建一个客服端,客服端的创建也是比较简单的;Socket s=new Socket(IP,port);其中IP为客服端连接的服务器的IP地址、port是为服务器提供连接的端口;通过这两个参数就可以跟服务器连接了。。。
服务器跟客服端连接好了后、下面我们需要来处理两者之间的通信;在这里、它们之间要想达到一种通信顺利和畅通的效果,我们需要对客服端和服务器两者给定好彼此之间的通信协议、在这开始学习间,其协议比较简单、就是要求我们怎么读就怎么写;比如我们在客服端发送一段文字、那么我们在发送这段文字之前,需要做些什么呢?难道我们就直接将这段文字发送过去就可以了吗?当然、如果我们仅仅从只发送文字这块来说是可以的。。但是、实际生活中,我们的软件需要做的有很多、不是仅仅局限发送文字,所以、我们在发送这段文字之前,我们需要先将其文字的长度读进去、接着我们还要把文字的标志发送过去、好让对方接收到做出那种情况的接收。。。然后、我们就可以将这段文字发送过去了。。。在接收的一端、我们收的先是长度,这没什么关系,也不必做什么处理、然后接着的是发送数据的用途(即标志)读取到这个后、就要求我们对其做出相应的反应,标志是用于接收文字的、则我们就按文字发送的过程进行读取;这样我们得到的通信内容就不会有差错了。。。
在上面、貌似我们将通信的处理得差不多了。。但我告诉你、这里还有很大一问题,因为我们给的标志没有很好的处理、我们的标志仅仅用数字1、2、3等标志、要知道我们发送消息是以字节的形式发送的、那么很可能我们会将读取的消息中某个字节编码当做标识符来读取、那样就会导致通信出问题了。。。所以、一般地、我们需要好好处理这个标识问题:在一般的大型通信软件中、它们用的标识是XMPP消息格式定义。其定义如下:所有的消息包括在<msg>为</msg>为标签的一段字符串内:<msg>具体消息必须是以<msg>开头,以</msg>结尾。
比如:登录请求
<msg>
<type>login</type>
<name>user</name>
<pwd>pwd</pwd>
</msg>
当我们接收时,需要将消息提取出来、比如:String msg=readString();
String type=getXMLValue("type",msg);//解释出消息类型
String User=getXMLValue("name",user);
String pwd=getXMLValue("pwd",pwd);
这样、我们就可以将信息完全地解释出来,而其中引起的数据错误的可能性就很少很少了。。。
已经两点多了。。下午还得去上课、所以有关通信方面的介绍暂时到这里、上面还有很多需要补充、比如数据的读取和写入过程。。。有时间、我再补充吧。。。再见了。。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
基于Vue cli3和flask搭建的个人博客项目,前后端分离,使用axios进行前后端的通信,还运用了vuex、element-ui等,主要实现了登录注册、首页博客展示、添加博客、个人博客、我的收藏、评论博客等模块。非常适合python...
本系统主要运用了物联网传感检测与通信技术,由使用Arduino平台开发的挂饰和基于Android平台设计的手机应用软件组成。挂饰通过蓝牙….zip嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可...
当我耐心整理了一些编程资源,...此外,我还整理了一些优质的编程书籍、博客和社区论坛,以便大家可以与其他编程爱好者交流经验,解决问题。希望这些资源能够激发大家对编程的兴趣,提升编程能力,实现自己的技术梦想!
作者描述了博客的属性,Wiki技术,用于构建视觉支持的服务,游戏工具,并给出了它们在教授外语口语教学中的应用结果,并揭示了其使用的方法学潜力。 英语:本文考虑了外语教学的当前趋势,例如集成Web 2.0技术,...
进入二十一世纪,以Internet为核心的现代网络积水和通信技术已经得到了飞速的发展和广泛的应用,各种网络交流互动工具也应运而生。其中以论坛、博客、社区、空间最为受广大网民朋友的欢迎,也是目前为止发展的比较...
进入二十一世纪,以Internet为核心的现代网络积水和通信技术已经得到了飞速的发展和广泛的应用,各种网络交流互动工具也应运而生。其中以论坛、博客、社区、空间最为受广大网民朋友的欢迎,也是目前为止发展的比较...
进入二十一世纪,以Internet为核心的现代网络积水和通信技术已经得到了飞速的发展和广泛的应用,各种网络交流互动工具也应运而生。其中以论坛、博客、社区、空间最为受广大网民朋友的欢迎,也是目前为止发展的比较...
Python毕业设计 基于Flask+sqlserver的个人技术博客系统设计与实现源码+详细文档+全部资料(高分项目).zipPython毕业设计 基于Flask+sqlserver的个人技术博客系统设计与实现源码+详细文档+全部资料(高分项目).zip...
1.版本:matlab2014/2019a,内含运行结果,不会运行可私信 2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像...5.博客介绍:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可si信
2、项目适用人群:计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等计算机相关专业的在校学生、专业老师、行业内企业员工下载使用。 3、项目可用于:项目本身具有较高的学习借鉴...
2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为...
2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为...
基于差错检测的DF(Decode-and-Forward,解码转发)中继通信系统是一种利用中继节点来增加通信可靠性和扩展覆盖范围的无线通信技术。在该系统中,中继节点接收到源节点的信号后,首先对信号进行解码,然后再将解码后...
2.主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设...
本设计为“基于Ajax的博客应用系统的设计与实现”,本博客系统的开发基于Ajax技术,采用异步通信,在不刷新整个页面的前提下局部更新页面数据,带给用户快速良好的交互体验。本系统将实现以下功能: (1) 博客来访...
2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...
1.版本:matlab2014/2019a,内含运行结果,不会运行可私信 2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像...5.博客介绍:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可si信
2.主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设...
主要内容是R与Java通信技术总结(主要为使用Rserve远程执行R脚本文件),另外还包括一个通信工具包RUtils的介绍。 我的博客里也有一些介绍: http://blog.csdn.net/zhyh1986/article/details/13065199 ...
使用介绍:基于SpringBoot + Rpc-Netty-Framework前后端分离、控制与持久层分离的分布式博客系统。 项目亮点: 1. 使用Interceptor + JWT + Hash + Zset 做用户权限双重认证、构建用户热搜词汇排行榜,同时过滤...