牛骨文教育服务平台(让学习变的简单)

Java编程那些事儿110——网络编程小结

陈跃峰

出自:http://blog.csdn.net/mailbomb

13.4 中文问题

网络传输过程中的中文问题也比较突出,出现该问题的原因和前面IO部分介绍的一致,都是由于传输过程中客户端程序和服务器端程序采用的字符集不一致,在解决该问题以前首先进行如下的思考:

是否在网络中一定要传输中文字符?

从前面的示例中可以看出,通过一定的协议格式设计,可以避免在网络中传输中文字符,这样就从基础上避免了中文问题的出现。例如在程序中需要传输“成功”、“失败”这样的中文字符串,在协议中可以约定数字0代表“成功”、1代表“失败”,这样在网络上传输数字即可,在客户端和服务器端进行简单的变换即可。

其实这也是设计网络协议时基本的设计技巧,通过合理的使用该技巧既可以减少网络传输的数据量,也可以从根本上避免网络传输过程中的中文问题。

如果必须在网络中传输中文字符,例如QQ中的聊天信息,这就需要使客户端程序使用的字符集编码和服务器端程序使用的字符集编码保持一致,这是中文问题解决的最基本的思路实现。

13.5 总结

关于Java语言的网络编程,本章介绍了网络编程的相关基础知识,介绍了Java语言中如何进行TCP和UDP格式的网络编程,并通过简单的示例演示网络编程的基本使用,通过这些内容的介绍将大家带入网络编程的大门,当然需要完全掌握网络编程,还需要进行很多艰苦卓越的工作,如果阅读本章内容比较轻松,还需要对于网络编程进行进阶的话,建议阅读《Java 2网络协议内幕》一书。

13.6 网络练习

1、分别使用TCP方式和UDP方式,实现将客户端输入的阿拉伯数字转换为中文大写数字。

2、分别使用TCP方式和UDP方式,实现本章中介绍的计算器示例,体会客户端和服务器端的功能划分以及框架实现。

3、设计一个简单的程序,实现向服务器端上传文件,并实现文件在服务器端的存储。

4、阅读P2P网络的相关知识,实现一个P2P的聊天程序。