欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    基于SOCKET的JAVA网络通信程序 .doc

    • 资源ID:2387491       资源大小:24.50KB        全文页数:11页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于SOCKET的JAVA网络通信程序 .doc

    基于SOCKET的JAVA网络通信程序摘要: 本文阐述了Java技术的优势和Socket的通信机制,并讨论了使用Eclipse实现基于Socket的网络通信程序的程序。关键词: Java,网络,SocketAbstract: This article describes the advantages of JAVA technology, Discussed the use of Eclipse to achieve network communications program based SOCKET technologyKeyword:Java,Network,Socket一、 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+程序员肯定经历过被MFC(Microsoft 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、IBM WebSphere等商业软件, 到Tomcat、JBoss等开源的免费工具,一应俱全。作为Java技术的初学者,不需要任何花费就能够进行Java企业应用的自我培训,以后若参与 Java的商业项目开发,便可以无缝地把软件移植到高端的商业平台上去。反观.Net,想免费自学,不盗版是不可能的啦。(5) 开源组织或者非盈利机构的支持开源组织是无政府主义的梦想-没有政体,没有所属权,言论与行动自由,仅仅依靠渴望共享与交流的信仰及无私奉献来维系。Java世界中,开源组织与非盈利机构发挥到了极致,许多出色的工具都出自它们之手。比如JUnit、 Cactus、Tomcat、Struts、JBoss、Eclipse、ANT、Xerces、Hibernate、Axis、AspectJ等等,许多工具还会出现在我们的咖啡馆中,扮演重要的角色。二、 Socket 机制所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。Socket和ServerSocket类库位于包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。三、 JAVA工具Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。Eclipse 是开放源代码的软件。这意味着Eclipse不仅可以免费使用,还可以通过研究源代码学习世界上顶尖开发人员的编程技术,并可以共享遍布全球的开发人员所贡献的公共开放源代码库。Eclipse美轮美奂的人机界面受到广泛赞誉。Eclipse提供了全新的SWT/JFace API(而不是AWT/Swing),一改SWT/Swing单调、沉闷的界面风格,使得开发基于本地的具有丰富图形界面的应用程序成为可能,犹如一股春风吹进Java的桌面开发领域,给人耳目一新的感觉。Eclipse凭借其灵活的扩展能力、优良的性能与插件技术,受到了越来越多开发者的喜爱。四、基于Socket的网络通信程序/服务器端程序ChatServer.java 负责与客户端通信import java.io.*;import .*;import java.util.*;public class ChatServer boolean started = false;ServerSocket ss = null;List<Client> clients = new ArrayList<Client>();public static void main(String args) new ChatServer().start();public void start() try ss = new ServerSocket(8888);started = true; catch (BindException e) System.out.println("端口使用中.");System.out.println("请关掉相关程序并重新运行服务器!");System.exit(0); catch (IOException e) try while(started) Socket s = ss.accept();Client c = new Client(s);new Thread(c).start();clients.add(c); catch (IOException e) finally try ss.close(); catch (IOException e) class Client implements Runnable private Socket s;private DataInputStream dis = null;private DataOutputStream dos = null;private boolean bConnected = false;public Client(Socket s) this.s = s;try dis = new DataInputStream(s.getInputStream();dos = new DataOutputStream(s.getOutputStream();bConnected = true; catch (IOException e) public void send(String str) try dos.writeUTF(str); catch (IOException e) public void run() try while(bConnected) String str = dis.readUTF();for(int i=0; i<clients.size(); i+) Client c = clients.get(i);c.send(str); catch (EOFException e) System.out.println("Client closed!"); catch (IOException e) e.printStackTrace(); finally try if(dis != null) dis.close();if(dos != null) dos.close();if(s != null) s.close(); catch (IOException e1) /客户端通信小应用程序ChatClient.javaimport java.awt.*;import java.awt.event.*;import java.io.*;import .*;public class ChatClient extends Frame Socket s = null;DataOutputStream dos = null;DataInputStream dis = null;private boolean bConnected = false;TextField tfTxt = new TextField();TextArea taContent = new TextArea();Thread tRecv = new Thread(new RecvThread();public static void main(String args) new ChatClient().launchFrame();public void launchFrame() setLocation(400, 300);this.setSize(300, 300);add(tfTxt, BorderLayout.SOUTH);add(taContent, BorderLayout.NORTH);pack();this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent arg0) disconnect();System.exit(0);.);tfTxt.addActionListener(new TFListener();setVisible(true);connect();tRecv.start();public void connect() try s = new Socket("127.0.0.1", 8888);dos = new DataOutputStream(s.getOutputStream();dis = new DataInputStream(s.getInputStream();bConnected = true; catch (UnknownHostException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();public void disconnect() try dos.close();dis.close();s.close(); catch (IOException e) private class TFListener implements ActionListener public void actionPerformed(ActionEvent e) String str = tfTxt.getText().trim();tfTxt.setText("");try dos.writeUTF(str);dos.flush(); catch (IOException e1) private class RecvThread implements Runnable public void run() try while(bConnected) String str = dis.readUTF();taContent.setText(taContent.getText() + str + 'n'); catch (IOException e) 五、小结以上是使用Eclips开发基于C/S模式的JAVA聊天小程序,主要采用TCP连接方式建立客户端与服务器端的连接,支持多个客户端,支持发送服务器端的系统消息,服务器端采用多线程方式监听用户的连接,接收客户端的聊天信息并转发聊天信息到其他客户端。基于这个程序的实现,可以很容易的把它变为一个局域网内相互转发消息和文件的助手,使其具有一定的实用价值。参考文献:1 美Rogers Cadenhead. Java编程入门经典 人民邮电出版社,20072 美Bruce Eckel. Thinking In Java 英文第4版 机械工业出版社,20073

    注意事项

    本文(基于SOCKET的JAVA网络通信程序 .doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开