`
吃货吃货
  • 浏览: 32007 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

浅谈一下对通信的认识

    博客分类:
  • java
阅读更多

何为网络通信?看起很高深的词汇解释起来往往就是简单的让人难以置信,没错,网络通信就是通过网络协议来实现计算机之间的信息交互。当然,这只算得上是我个人的理解。

而我们知道,如果我们想要向某一台机器通信时,我们需要首先需要确定我们自己的机器与目标机器是否连上了同一台服务器,然后在向服务器发送要发送的信息,而服务器则将从机器上读来的消息发送到你想要发送到的指定机器。

那么这些东西体现到代码上时,创建一个服务器与客户端,然后客户端通过匹配ip地址与端口连接上服务器,再根据自己写的协议就可以发送信息以及很多有趣的功能。

那么服务器与客户端的实现也非常简单,就那么简单的几行代码

ServerSocket server = new ServerSocket(port);
			System.out.println("服务器创建成功");
Socket client = new Socket(ip,port);

 那么在创建完成之后呢,怎么实现服务器与客户机之间的交互呢,这就要靠我们以前所学过的输入输出流了

//得到输入输出流对象
			InputStream ins = client.getInputStream();
			OutputStream out = client.getOutputStream();

   再然后就是自己写传输文本信息的协议了,以下代码在附上自己写的传输文件的协议

int totalLen = dins.readInt();
				System.out.println("-----进入一条消息长度为:"+totalLen);
				//2、读取消息类型标识,只读取一个字节
				byte flag = dins.readByte();
				System.out.println("消息接收类型为:"+flag);
				//3、读取目标客户号码,一个int
				int destNum = dins.readInt();
				System.out.println("消息接受目标用户号是:"+destNum);
				if(flag == 1){
					byte[] data = new byte[totalLen-4-1-4];
					//从流中读取data.length个字节放入数组中
					dins.readFully(data);
					String msg = new String(data);//将字节数组转换成字符串
					System.out.println("发送文本给:"+destNum+" 内容是:"+msg);
				}else if(flag == 2){
					System.out.println("发送文件给:"+destNum);
					byte[] data = new byte[256];
					dins.readFully(data);//读取256个字节作为标题
					//解析文件名字并去除空格
					String fileName = new String(data).trim();
					System.out.println("读到的文件名为:"+fileName);
					//余下的字节就是文件内容
					data = new byte[totalLen-4-1-4-256];
					dins.readFully(data);//读入文件字节
					//保存文件到当前目录下
					FileOutputStream fous = new FileOutputStream(fileName);
					fous.write(data);
					fous.flush();
					fous.close();
					System.out.println("文件保存完毕");

 不过在将文件传输等功能写入客户端界面时,发现了一点有趣的事情就是,如果使用BufferedReader.read()可能会导致乱码···但是使用BufferedReader.readLine()貌似就不会,目前为止还没想到什么合理的解释··

 通信这块也算是刚刚才开始起步吧,不过咱认真起来还是可以做好很多事情的~加油

分享到:
评论

相关推荐

    浅谈第五代移动通信技术.pdf

    浅谈第五代移动通信技术.pdf

    浅谈对CDMA的认识

    历史上无线技术经历过许多革命, 最早可以追溯到世纪赫兹的电磁波辐射实验, 它使人们认识到电磁波和电磁波能量是可以控制发射的。

    浅谈对物联网的认识.docx

    因此,物联网的定义是通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现对物品的智能化识别、定位、跟踪、监控和...

    通信原理《大话移动通信》读后感想.rar

    读完这本书《大话移动通信-丁奇》这本电子书,写一个读后感,题目是《浅谈移动通信的认识》。这本书详细讲解了移动通信的演进历史......

    浅谈黑客与网络安全-.docx

    浅谈黑客与网络安全-全文共2页,当前为第1页。浅谈黑客与网络安全-全文共2页,当前为第1页。浅谈黑客与网络平安 浅谈黑客与网络安全-全文共2页,当前为第1页。 浅谈黑客与网络安全-全文共2页,当前为第1页。 浅谈...

    浅谈发展智能电网的作用及意义.pdf

    智能电网(smart power grids),就是电网的智能化,也被称为电网2.0,它是建立在集成的、高速双向通信网络的基础上,通过先进的

    浅谈物联网的应用及其关键技术_张思源.pdf

    从物联网的出现至今,已经受到了社会各界的广泛关注,被认为是在计算机、互联网和移动通信后的第四次信息产业革命。笔者在本文中主要介绍了物联网的相关概念和实际应用情况,并对物联网关键技术进行了详细阐述,以期为...

    浅谈pyqt5中信号与槽的认识

    信号(Signal)和槽(Slot)是Qt中的核心机制,也是PyQt变成中对象之间进行通信的机制 在pyqt5中,每一个QObject对象和pyqt中所有继承自QWidget的控件都支持信号和槽 当信号发射时,连接槽函数将会自动执行,pyqt5中...

    浅谈一体化呼叫中心平台

    怎样来认识和描述它?这提出了一个很老的、然而又是最基本的问题。 依笔者多年从事呼叫中心的技术开发以及客户服务中心市场运营的经验和教训,我认为呼叫中心具备以下五个特点,同时也可用以下五句话对它进行定义: ...

    RFID技术中的无线射频识别技术浅谈

    而RFID在交通物流行业的应用更是为通信技术提供了一个崭新的舞台,将成为未来电信业有潜力的利润增长点之一。  1、RFID技术在各行业的应用  无需直接接触、无需光学可视、无需人工干预即可完成信息输入和处理,...

    Android手机交互应用开发创意之钥 源代码

     第1章 关于创意的浅谈  1.1 创意是如何诞生的  1.2 创意该如何发展  1.3 从作品到产品  第2章 当创意遇上“机器人”  2.1 “机器人”的诞生  2.3 创意移动应用  第3章 创意的商机  3.1 androidmarket简介 ...

    有线数字电视噪声干扰初探

    数字电视最薄弱的环节是技术服务和维护, 通过维修维护实践, 我们对有线数字电视由于传输网络噪声干扰形成的故障有了一些认识, 现介绍如下。  随着技术发展, 有线电视传输网络普遍采用光纤传输系统与同轴电缆...

    软件项目管理师大全(大纲+论文格式+经典案例)

    浅谈项目建议书、可行性研究、项目评估、项目后评价的作用及其区别 206 项目评估 208 项目前期管理的一种科学方法——可行性研究工作 209 软件项目过程管理保证软质量 213 项目管理过程之质量管理 214 项目经理如何...

    信息系统项目管理师 论文 信息系统项目管理师范文

    浅谈项目建议书、可行性研究、项目评估、项目后评价的作用及其区别 206 项目评估 208 项目前期管理的一种科学方法——可行性研究工作 209 软件项目过程管理保证软质量 213 项目管理过程之质量管理 214 项目经理如何...

    电子电路专业毕业设计毕业论文资料电路设计51单片机设计软硬件设计301~400例资料合集.zip

    0342、浅谈开关电源的过流保护电路.rar 0343、嵌入式POL DC/DC转换器设计.rar 0344、射频SoC nRF9E5及无线数据传输系统的实现.rar 0345、射频模块nRF9E5在污水数据监测系统中的应用.rar 0346、深井泵自动控制器.rar...

    asp.net知识库

    也谈 ASP.NET 1.1 中 QueryString 的安全获取写法 ASP.NET运行模式:PageHandlerFactory 利用搜索引擎引用来高亮页面关键字 网站首页的自动语言切换 应用系统的多语言支持 (一) 应用系统的多语言支持 (二) 自动...

Global site tag (gtag.js) - Google Analytics