`
Fhappy
  • 浏览: 70092 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

网络通信总结(2)

 
阅读更多

1.Java中客服端的创建

1.语法格式:

 

java.net.Socket client = new java.net.Socket(String ip,int port);
	//其中参数ip为服务器的IP地址,port为服务器端口号。

 

然后是得到client的输入输出流对象。因为客户端读入数据时会出现阻塞,所以我们要将它放到一个独立的线程中去处理。

2.通信流程的重要性

在和同学的讨论过程中发现,通信流程很重要。程序有时候会出现这么一个问题,客户机在等待服务器发送来的消息,而服务器也在等待客户机发送来的消息。这个时候二者都阻塞而不能往下执行,导致程序就卡在这个地方。服务器和客户端发送消息的先后顺序一定要事先设计好,并按设计好的规则去实现。

基础通信中有一个简单的例子:服务器验证客户端请求的合法性

服务器发送消息给客户要求客户端发送用户名,只有当服务器接收到客户端发来的用户名,服务器才会再次发送消息,要求客户端发送用户密码。这就是自己设计的通信流程,因为没有按照这个流程来实现代码,所以程序才不能达到自己的预计。


3.字符串乱码问题

在网络通信学习过程中,客户端和服务器间进行数据传输时,如果传送的消息是英文,一般不会出现乱码,但是当我们发送的消息中含有中文字符时,就会出现乱码。为什么会出现乱码呢?

由于地域文化等因素的差异,会出现不同的字符集。而计算机处理的都是二进制为0和1,所以我们将字符与计算机中的二进制码一一对应起来,这种对应关系就是字符编码。为了满足不同的需要,就制定了不同的字符集编码标准。字符在保存时的编码格式如果和要显示的编码格式不一样的话,就可能会出现乱码问题。

例如使用GBK字符集编码的字符串,在输出显示时使用的是UTF-8字符集,那么就会出现乱码。

在java中解决字符乱码的方法如下:

String str = "netjava培训";
	byte[] data = str.getBytes("UTF-8");//表示将字符串str转换成字节数组时,使用的是UTF-8字符集编码方式
	byte[] data = str.getBytes("GBK");//表示将字符串str转换成字节数组时,使用的是GBK字符集编码方式,GBK是中文繁简编码字符集。
 

经过测试,使用以上两种编码方式得到的字节数组data的长度不一样,可见使用不用的字符集编码得到的二进制位是不同的。

以上是将字符串编码为字节数组,下面介绍将字节数组按照指定的字符集解析为字符串:

String s = new String(byte bytes[], String charsetName);
 

String(byte bytes[], String charsetName)是String类中的一个构造函数,是将一个byte数组,按照指定的字符集解析成一个字符串。

通过上面的介绍,我们要解决字符乱码问题的方法,就是将字符编码和解析选用的字符集一致。

0
0
分享到:
评论

相关推荐

    Android系统应用开发 实验五 网络通信 实验报告

    在Android系统应用开发中,网络通信是至关重要的一个环节,特别是在构建交互性强的应用时。本实验旨在让学生深入了解Android网络通信技术,并通过实际操作掌握不同类型的网络通信方式,包括利用WebView实现浏览器...

    网络通信年终总结.docx

    网络通信年终总结.docx

    网络通信开发包

    总结来说,这个“网络通信开发包”以C++语言为核心,结合了控件、源码和丰富的资源,为开发者构建网络应用提供了强大支持。它不仅简化了网络通信的实现过程,还通过清晰的文档和源码,帮助开发者提升技能,实现更...

    Linux与Windows系统间的网络通信.pdf

    Linux与Windows系统间的网络通信 Linux与Windows系统间的网络通信是计算机网络领域中的一个重要话题。本文将介绍Linux与Windows系统间的网络通信的实现方法,包括 Socket 编程的工作原理和 Linux 与 Windows 不同...

    嵌入式Linux网络通信程序开发.pdf

    嵌入式Linux网络通信程序开发 本篇论文主要讨论了基于Linux操作系统的嵌入式网络通信程序开发,特别是基于AX88796网卡驱动程序的开发。文章首先介绍了当前网络的重要性和嵌入式系统的发展趋势,然后详细分析了Linux...

    西门子工业网络通信指南上册

    总结来说,西门子工业网络通信指南上册是一份专门为工业控制网络技术提供指导的资料,其中涵盖了西门子工业网络通信的基础知识、技术要点以及应用实例等。通过学习和实践指南中的内容,技术人员可以提升对西门子工业...

    基于ARM9的嵌入式Linux网络通信系统设计与实现.pdf

    2. 基于 ARM9 的嵌入式 Linux 网络通信系统设计:本文使用 $3C2410 微处理器和 Linux 操作系统,实现了服务器和客户端的网络通信。该系统的硬件平台包括 $3C2410 微处理器、CS8900A 网络接口芯片和 Flash 存储器模块...

    网络通信年终总结(完整版).doc

    网络通信年终总结(完整版).doc

    实现P2P网络通信.rar

    总结来说,实现P2P网络通信需要对网络编程、并发处理以及文件操作有深入的理解。通过Java的Socket编程,我们可以构建起基本的节点通信框架,再结合P2P网络的特点进行优化,从而实现高效、可靠的P2P网络通信系统。...

    VB环境下用Winsock实现网络通信

    ### VB环境下用Winsock实现网络通信 #### 概述 随着计算机技术和互联网的快速发展,网络编程已经成为现代软件开发中不可或缺的一部分。然而,由于涉及到复杂的网络专业知识和技术细节,很多编程爱好者和初学者往往...

    网络通信vc源代码

    总结,网络通信VC源代码是学习网络编程的良好起点,特别是对于想在Windows环境下使用C++进行网络开发的初学者。通过对源代码的分析和实践,不仅可以掌握TCP通信的基本原理,还能熟悉Winsock API的使用,为后续的网络...

    .NET网络通信,客户机,服务器

    总结起来,.NET网络通信涵盖了多种协议和模式,开发者可以根据需求选择合适的通信方式。无论是在桌面应用、Web应用还是移动应用中,理解和掌握这些技术对于构建高效、可靠的网络应用至关重要。通过学习和实践C#中的...

    Linux网络通信 socket应用编程知识点总结含例程

    Linux 网络通信 socket 应用编程知识点总结含例程 Linux 网络通信 socket 应用编程是指在 Linux 操作系统中使用 socket 编程来实现网络通信的技术。socket 是一种网络编程接口,提供了一个创建网络套接字的方法,...

    基于socket并发网络通信

    总结,基于socket的并发网络通信涉及到网络编程的基本原理、TCP连接的建立与维护、多线程/多进程并发处理以及可能的优化策略。理解并熟练掌握这些知识点,对于开发高效、可靠的网络应用程序至关重要。

    PROFINET通信技术总结.docx

    PROFINET通信技术总结

    串口通信项目总结

    串口通信项目总结 本篇资源的主要内容是对多串口接收项目的总结,涵盖技术总结和心得总结两方面。下面将对标题、描述、标签和部分内容进行详细的解释和总结。 一、技术总结 技术总结是对整个项目的技术实现过程的...

    惠州学院网络通信实验报告

    【网络通信实验报告——探索网络通信的奥秘】 在惠州学院的网络通信课程中,学生们通过一系列实验深入理解和掌握网络通信的基本原理和技术。本实验报告将详细阐述实验1及实验四至七的主要内容,旨在展示学生刘永富...

    201-年年度计算机网络通信工作总结.docx

    2. **网络通信管理**:涵盖了网络故障排查和修复,如系统故障、网络故障、软件故障等。对于频繁出现的问题,如系统崩溃和网络问题,工作者进行了系统重装和线路检查。此外,还涉及了杀毒软件的安装和更新,以增强...

    TCP网络通信(多线程客户端和服务器端)

    总结来说,TCP网络通信结合多线程技术可以实现高效、稳定且具有高并发能力的服务器和客户端应用。在Linux环境下,借助socket API和高级库,开发者可以构建出强大的网络服务。同时,理解并掌握线程同步与锁机制、事件...

    C#语言编写的网络通信小程序TCP/IP

    在IT领域,网络通信是计算机科学的一个重要分支,它涉及数据在互联网上的传输与交互。在本项目中,我们关注的是使用C#编程语言实现基于TCP/IP协议的网络通信小程序。TCP/IP(Transmission Control Protocol/Internet...

Global site tag (gtag.js) - Google Analytics