软件设计开发本栏目责任编辑:谢媛媛
基于JavaSocket多客户端并发通信聊天程序的设计与实现
莫足琴,欧阳艳阶,马康
(十堰职业技术学院计算机工程系,湖北十堰442000)
摘要:随着网络技术与计算机开发语言的发展,越来越多的程序员利用Java来编写网络程序。本文介绍了Socket的通信机制,并使用Java语言、套接字接口(SocketAPI)技术和多线程相结合的模式实现了多客户端与服务器的并发通信的多人聊天系统。
关键词:Java;Socket;多客户并发;网络通信
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)20-30253-03
Design&ImplementofChatSystemBasedonSocketMulti-userParallelCommunication
MOZu-qin,OUYANGYan-jie,MAKang
(DeptofComputerEng,ShiyanTechnicalInstituteEng,Shiyan442000,China)
Abstract:Asinternettechnicandcomputerlanguagedevelop,moreandmoreprogrammersmakeuseofJavatocompilenetprogramme.ThispaperintroducesthemechanismofcommunicationsandusingthecombinationofJavalanguage,SocketAPItechnicandthemulti-threadingtoimplementchatsysteminwhichmulti-userandservercancommunicateparallel.
keywords:Java;Socket;multi-usersendparallel;Netcommunication
1引言
Java是一种可以编写跨平台应用软件的面向对象的程序设计语言,网络应用是Java语言取得成功的领域之一,它已经成为现在Internet上最流行的一种编程语言。网络编程的目的就是直接或间接地通过网络协议与其它计算机进行通讯。两台计算机通讯需解决两个主要问题:一是如何准确定位网络上的主机;二是找到主机后如何可靠有效地进行数据传输。
Java语言作为网络编程语言,提供了强大的网络编程接口。针对网络通信的不同层次,Java提供的网络功能有四大类:InetAd-dress、URL、Socket、Datagram。Socket是Internet使用的协议组TCP/IP的组合,实现了两台主机之间通过端口进行网络通信。Java.net包中提供Socket类,隐藏了Socket的实现细节,不需要开发者编写接口程序,而可以快速的实现网络的通信。[1]
2Socket的通信
2.1Socket通信机制
在Java中,可以使用两种Socket方式,即流式Socket和数据报式Socket。流式Socket提供了双向的、有序的、无重复、可靠的的数据流服务,采用的是一种TCP协议。数据报式Socket支持双向的数据流,但不保证是可靠的、有序的、无重复的传输,采用的是UDP协议。[1]两种Socket相比较而言,流式Socket具有较高的安全性,但有一定的额外开销。而数据报式Socket与之相反。笔者根据实际情况采用的是流式Socket方式。
基于TCP协议的流式Socket实现网络通信的类有两个:在客户端的Socket类和在服务器端的ServerSocket类。无论一个Socket通信程序的功能多么齐全,程序多么复杂,Socket基本
结构都是一样的,都包括以下四个基本步骤:
(1)在客户端和服务器端创建Socket和ServerSocket实例;
(2)打开连接到Socket的输入/输出流;
(3)利用输入/输出流,按照一定的协议对Socket进行读/写操作;
(4)关闭输入/输出流和Socket。
Socket通信机制框图见图1。
图1Socket通信机制框图
收稿日期:2008-02-24
作者简介:莫足琴(1973-),女,十堰职业技术学院计算机工程系讲师,工学硕士;欧阳艳阶(1974-),男,十堰职业技术学院计算机工程系讲师,工程硕士;马康(1976-),男,十堰职业技术学院计算机工程系讲师。
253
今天的文章java socket客户端设计,基于JavaSocket多客户端并发通信聊天程序的设计与实现分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/11240.html