java socket客户端设计,基于JavaSocket多客户端并发通信聊天程序的设计与实现

软件设计开发本栏目责任编辑:谢媛媛

基于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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值