【Java开源代码栏目提醒】:以下是网学会员为您推荐的Java开源代码-基于SOCKET的JAVA网络通信程序 (2) - 毕业设计,希望本篇文章对您学习有所帮助。
基于 SOCKET 的
JAVA 网络通信程序摘要: 本文阐述了
Java 技术的优势和 Socket 的通信机制,并讨论了使用Eclipse 实现基于 Socket 的网络
通信程序的程序。
关键词:
Java,网络,SocketAbstract: This article describes the advantages of
JAVA technologyDiscussed the use of Eclipse to achieve network communications programbased SOCKET technologyKey
word:JavaNetworkSocket一、
Java 语言随着微软推广.Net 技术力度的加大,
Java 技术被一部分没有真正接触和使用它的人所误解,他们可能认为.Net 技术是
Java 技术的升级,现在学习编程要学习.Net。
那么
学习 Java 编程,到底是不是一个明智的选择呢?带着这些疑问,让我们看一下
Java 语言的优势:1 免费Sun 免费提供用来开发
Java 应用程序的一切,你不必付任何的版税。
与
Java 本身相比,
Java API 更是可贵的免费财富。
想使用 Socket 操作网络?API 中有想连接到 SQL 数据库?API 中有想给应用程序一个漂亮的用户界面?API 中有想要处理数字图形、播放音乐、解析字符串或者创建数字签名?API 中全都有2 跨平台一次编写,随处运行,
Java 系统可以运行在不同的操作系统和硬件上。
随着Linux 的持续增长以及 Mac OSX 完全支持
Java 技术,跨平台的特性变得越来越有分量。
由于
Java 跨平台,
Java API 自然也是平台统一的。
对程序员而言,没有比统一的 API 函数能够让他们更欣慰的了--已经有了圆形的轮子,何必再从头发明轮子呢?我们拿
Java API 与 C的类库相比便可以知道它的可贵之处。
有 Windows编程经验的 C程序员肯定经历过被 MFCMicrosoft Foundation Classes,微软基类库折磨的日子,学习曲线陡峭,没有若干个月根本无法开始生产,一段时间不接触遗忘率又高。
据说,即使在微软公司内部,除了 MFC 开发小组,谁都不乐意用它。
即便你熟悉了 MFC,能够顺利开发 Windows 应用程序,如果你要编写一个 Linux 应用
程序,MFC 又派不上用场 了,你必须学习 Linux 下 C开发的一套库函数。
还有 UNIX、FreeBSD、Mac OS......你学得过来吗?反观
Java API,操作
系统,你爱谁是谁,只要编写一次便可随处运行!3 简单与 C等语言相比较,语法上
Java 是简单的。
在
Java 中,要写出低劣的
代码也不是一件容易的事情。
一方面,垃圾回收机制堵住了内存泄漏的可能性,另一方面就是异常捕捉机制,它强迫你做最坏的打算。
编写程序时,难免会遇到一些意外,比如文件无法打开、
网络读取失败等特殊情况。
在 C等语言中是依靠返回值来判断的,如果一句句地检查返回值,那实在是太麻烦了。
从而,程序员习惯性地忽略返回值的检查,并安慰自己一切都会好起来的。
这便埋下了隐患。
在
Java 中,
Java 的方法可以抛异常,而你必须应答异常,即使你不想进行任何操作。
比如编写打开文件的
代码,你不得不响应异常以防意外发生,否则程序根本不能够通过编译。
未雨绸缪,使得
Java 系统更稳健。
4 企业应用的成熟平台
Java 技术的企业应用旨在提升企业竞争力,所以
Java 技术受到了企业的欣赏,市场份额是同类技术中最大的。
同时,
Java 开放标准,所以供应商众多。
市面上有许多的应用服务器、工具与构件可以选择,从高端的 BEA WebLogic、IBMWebSphere 等商业软件, 到 Tomcat、JBoss 等
开源的
免费工具,一应俱全。
作为
Java 技术的初学者,不需要任何花费就能够进行
Java 企业应用的自我培训,以后若参与
Java 的商业项目开发,便可以无缝地把软件移植到高端的商业平台上去。
反观.Net,想免费自学,不盗版是不可能的啦。
5
开源组织或者非盈利机构的支持
开源组织是无政府主义的梦想--没有政体,没有所属权,言论与行动自由,仅仅依靠渴望共享与交流的信仰及无私奉献来维系。
Java 世界中,
开源组织与非盈利机构发挥到了极致,许多出色的工具都出自它们之手。
比如 JUnit、 Cactus、Tomcat、Struts、JBoss、Eclipse、ANT、Xerces、Hibernate、Axis、
AspectJ等等,许多工具还会出现在我们的咖啡馆中,扮演重要的角色。
二、 Socket 机制所谓 socket 通常也称作套接字,用于描述 IP 地址和端口,是一个通信链的句柄。
应用程序通常通过套接字向网络发出请求或者应答网络请求。
Socket 和ServerSocket 类库位于
java.net 包中。
ServerSocket 用于服务器端,Socket是建立网络连接时使用的。
在连接成功时,应用程序两端都会产生一个 Socket实例,操作这个实例,完成所需的会话。
对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。
三、
JAVA 工具Eclipse 最初是由 IBM 公司开发的替代商业
软件 Visual Age for
Java 的下一代IDE 开发环境,2001 年 11 月贡献给
开源社区,现在它由非营利软件供应商联盟Eclipse 基金会(Eclipse Foundation)管理。
Eclipse 是开放源
代码的软件。
这意味着 Eclipse 不仅可以免费使用,还可以通过研究源
代码学习世界上顶尖开发人员的编程技术,并可以共享遍布全球的开发人员所贡献的公共开放源
代码库。
Eclipse 美轮美奂的人机界面受到广泛赞誉。
Eclipse 提供了全新的 SWT/JFaceAPI(而不是 AWT/Swing),一改 SWT/Swing 单调、沉闷的界面风格,使得开发基于本地的具有丰富图形界面的应用程序成为可能,犹如一股春风吹进
Java 的桌面开发领域,给人耳目一新的感觉。
Eclipse 凭借其灵活的扩展能力、优良的性能与插件技术,受到了越来越多开发者的喜爱。
四、基于 Socket 的网络通信程序//服务器端程序 ChatServer.
java 负责与客户端通信import
java.io.import
java.net.import
java.util.public class ChatServer boolean started falseServerSocket ss nullList clients new ArrayListpublic static void mainString args new ChatServer.startpublic void start try ss new ServerSocket8888started true catch BindException e System.out.println端口使用中....System.out.println请关掉相关程序并重新运行服务器!System.exit0 catch IOException e try whilestarted Socket s ss.acceptClient c new Clientsnew Threadc.startclients.addc catch IOException e finally try ss.close catch IOException e class Client implements Runnable private Socket sprivate DataInputStream dis nullprivate DataOutputStream dos nullprivate boolean bConnected falsepublic ClientSocket s this.s stry dis new DataInputStreams.getInputStreamdos new DataOutputStreams.getOutputStreambConnected true catch IOException e public void sendString str try dos.writeUTFstr catch IOException e public void run try whilebConnected String str dis.readUTFforint i0 i