`

通信之简单文本信息及图片发送

 
阅读更多

[size=x-large][/size]

 其实按大家的看法来说,通信项目是很简单的,但是对于我来说就略显复杂了。在连续弄了两个晚上之后,终于发现通信不过就那点内容罢了而已。简单的说,一个服务器,一个客户端就轻松搞定了。但是要想把通信这块做得更完美还是要下点功夫的。下面谈谈一些我近两天弄懂的一些肤浅的内容,顺便是给自己有个小小的总结吧。

首先写服务器,创建服务器ServerSocket,调用其accept()方法返回一个类似于服务器与客户端的连结对象Socket,这时程序就出现阻塞状态,直到有客户机连结进入。其次,通过Socket对象获得输入输出流,数据输入输出流。还有在这个过程中最好定义一个标志,方便控制程序的继续与发生。今天这里说的是文本信息机图片在不同的客户端的发送,所以要对信息包的概念有过了解,信息包中含信息头和信息体,消息头有4+4个byte,剩下的就是信息体,而送文件的信息体中还含有文件名的4个byte。这里了解这些事方便我们在利用输入输出流,根据我们自己定的“协议”来写入及读取文本信息及图片解析之类的。输入输出流这里要注意的是必须根据自己的想法按先后顺序写和读,否则容易出错。由于我之前缺了几次课,对有的部分不是很懂,所以代码这块真是不太懂写,就参照了强哥的,可是,我现在发现了,理解代码在于理解思路,很多时候去看别人的代码是件不容易的事情,只有自己亲身写了才会理解深透。而这点在编程时十分重要的,这也是我一直很没能做好的。

在这里,最新接触的类Vector在JDK中是一个可用于实现可增长的数组对象,意思不是太明白,大概估计了是那个用途吧。。。在发送信息时,要将字符串转为字节数组来发送,这里用到的是msg.getBytes("GB2312");的方法,意思是将msg按照GB2312的边贸格式转为byte数组。在读取信息时,则要将读取到的byte数组转为String类型,若读到的是bytes 数组名,用String content = new String(bytes,"GB2312");这个的话掌握了规则就很简单了的。

关于客户端,相对来说就简单一点,一个界面,两个按钮。这里用来显示发送的信息的用了个滚动的面板,滚动面板上加的是一个JTextPane对象,它是可以以图形方式表示的属性来标记的文本组件。让文本信息显示在上面就直接调用insertString();方法。

总的来说通信,弄懂简单的通信协议基本上就没有什么问题了。所以协议还是很重要的。

哈哈,感觉理解的思维好肤浅。慢慢来吧

分享到:
评论
1 楼 图受各种 2013-07-18  
恩,加油!

相关推荐

    电信设备-即时通信文本信息图片编辑的方法、客户端及系统.zip

    本压缩包“电信设备-即时通信文本信息图片编辑的方法、客户端及系统.zip”主要涉及的是如何在即时通信场景中高效、便捷地处理文本和图片信息,以及相关的客户端和系统设计。 首先,我们要理解即时通信文本信息编辑...

    文本及二进制通信命令

    文本通信,也称为ASCII通信,基于ASCII码(美国标准信息交换代码)进行数据传输,它是一种7位的编码系统,包含了128个字符,如字母、数字和常见符号。这种方式易于阅读和理解,适合于人机交互和网络协议如HTTP、FTP...

    C# socket通信允许发送消息,图片,与文件

    综上所述,C#中的Socket通信不仅能够传输简单的文本消息,还可以处理更复杂的二进制数据,如图片和文件。理解并熟练运用Socket通信,对于开发网络应用至关重要。在实际项目中,还需要结合具体需求,考虑性能优化、...

    利用websocket实现即时通讯,支持语音图片分段发送

    或者,使用MIME类型的多部分消息,将图片作为一个部分,与其他数据(如文本消息)一起发送。 总的来说,这个项目展示了如何利用WebSocket和相关技术实现实时通讯功能,包括文字、语音和图片的交互。在实际应用中,...

    Qt实现聊天小程序,发送文字以及图片并显示

    在本文中,我们将深入探讨如何使用Qt框架来实现一个简单的聊天小程序,该程序支持发送文字消息和图片,并具有用户友好的界面。Qt是一个强大的跨平台应用程序开发框架,它提供了丰富的库和工具,使得构建GUI应用变得...

    javamail入门1--发送简单的文本邮件

    这个入门教程将带你了解如何使用 JavaMail 来发送简单的文本邮件。在开始之前,你需要确保已经添加了 JavaMail 相关的库,这里提到的 "lib" 文件可能包含了这些必要的 JAR 包。 首先,你需要引入 JavaMail 的核心库...

    可上传图片文本编辑器

    在IT领域,文本编辑器是开发人员日常工作中不可或缺的工具,尤其是一款支持图片上传功能的文本编辑器,更是为内容创作提供了极大的便利。本篇文章将深入探讨“可上传图片文本编辑器”的相关知识点,包括其核心特性、...

    socket通信,客户端向服务器传文件

    在这个场景中,我们将讨论如何使用Java实现一个简单的文件传输功能,即客户端通过Socket连接将文件发送到服务器。 首先,我们需要理解Socket通信的基本流程: 1. **服务器端**: - 创建`ServerSocket`实例,指定...

    C# Socket通信 TCP通信 UDP通信通讯源码收发二进制和文本数据

    C# Socket通信的源码,支持TCP和UDP收发二进制数据,如图片,视频,音频数据,或者是文本数据。也支持UDP收发数据。简单友好的API,可以直接拿来用。基于.NET Framework2.0的,只要高于2.0版本的Framework都可以正常...

    微信2.9.0.123发送文本call易语言代码

    在微信API文档中,有一个叫做“发送客服消息”的接口(customer_service_message),用于向用户发送文本、图片、语音、视频等多种类型的消息。对于文本消息,我们需要构造一个JSON对象,其中包含用户的OpenID(用户...

    邮件发送与接收(包含各种形式的附件,如文本格式,html格式),还有安装与相关类的介绍,带附近的邮件发送是一个非常好的例子,我朝的饿个啊个是个的个个!

    以下是一个简单的本地邮件发送示例: ```java import javax.mail.*; import javax.mail.internet.*; public class MailSender { public static void main(String[] args) throws Exception { Properties props =...

    E聊android即时通信app简易版源码

    本文将详细解析"**E聊android即时通信app简易版源码**"这一项目,涵盖其核心功能及实现技术。 首先,E聊是一款基于Android平台的即时通讯应用,它的简易版提供了基础但实用的功能,包括: 1. **私聊**:私聊是IM...

    易语言文本和字节集相互转换

    而字节集则是二进制数据的集合,它可以包含任何二进制信息,如图片、音频、视频数据,甚至编码后的文本。字节集在易语言中以字节集类型存在。 1. **文本到字节集的转换**:在易语言中,将文本转换为字节集通常是...

    java 聊天室之 传送图片文字等功能的实现

    3. **数据序列化与反序列化**:文本消息可以通过简单的字符串传输,但图片和其他二进制数据需要序列化为字节流,以便在网络中传输。Java提供了Serializable接口,可以将对象转换为字节流,然后在另一端反序列化回...

    免费自定义发送手机信息

    自定义发送短信意味着用户可以创建个性化的消息,不仅限于简单的文本,可能还包括表情符号、图片或链接。 在软件设计方面,实现自定义发送短信功能需要集成短信API(应用程序接口)。这些API通常由运营商提供,允许...

    c#与python的http通信.zip

    在IT行业中,网络通信是应用程序之间交互的重要方式之一,HTTP(超文本传输协议)作为互联网上应用最广泛的一种网络协议,被广泛应用于各种语言之间的数据交换。本资料包"**c#与python的http通信.zip**"聚焦于C#和...

    简单邮邮件发送器

    "简单邮邮件发送器"可能采用了SSL/TLS加密来保护在客户端和SMTP服务器之间的通信,防止数据被窃听或篡改。此外,如果软件要求用户输入SMTP服务器的身份验证信息,那么这可能是为了确保只有授权用户才能发送邮件,...

    局域网内最好的通信工具(使用简单)

    1. **即时消息**:用户可以通过文本、表情、图片等多种方式实时交流。 2. **文件传输**:用户可以快速地在局域网内的设备之间分享大文件,这对于团队协作至关重要。 3. **群组聊天**:创建多个聊天室,便于团队讨论...

    简易的发送邮件程序(C#)

    在IT行业中,编程语言C#被广泛用于开发各种应用程序,包括与网络通信相关的功能,如发送电子邮件。本项目“简易的发送邮件程序”提供了一个基本的C#实现,旨在帮助开发者理解如何通过C#代码来发送邮件。这个程序对于...

    qt5串口简单实现图片、pdf文件的传输

    在本文中,我们将深入探讨如何使用Qt5框架来实现串口通信,并着重关注如何通过串口传输图片和PDF文件。Qt5是一个强大的跨平台应用程序开发框架,提供了丰富的API用于实现各种功能,包括串口通信。在进行串口传输时,...

Global site tag (gtag.js) - Google Analytics