首页 基于Socket接口网络通信的实现

基于Socket接口网络通信的实现

举报
开通vip

基于Socket接口网络通信的实现 第 30卷第 5期 唐山师范学院学报 2008年 9月 Vol.30 No.5 Journal of Tangshan Teachers College Sep. 2008 ────────── 收稿日期:2007-09-06 作者简介:高伟(1980-),男,河北唐山人,唐山师范学院计算机科学系助教,现从事计算机程序语言科...

基于Socket接口网络通信的实现
第 30卷第 5期 唐山师范学院学报 2008年 9月 Vol.30 No.5 Journal of Tangshan Teachers College Sep. 2008 ────────── 收稿日期:2007-09-06 作者简介:高伟(1980-),男,河北唐山人,唐山师范学院计算机科学系助教,现从事计算机程序语言科研工作。 - 80 - 基于 Socket接口网络通信的实现 高 伟 1,詹 胜 2 (1.唐山师范学院 计算机科学系,河北 唐山 063000;2.唐山师范学院 组织部,河北 唐山 063000) 摘 要:利用 Java语言提供的 DatagramSocket类与 DatagramPacket类,给出了数据包双向传输中发送和接收 的流程,并用实例实现了在客户机/服务器 机制 综治信访维稳工作机制反恐怖工作机制企业员工晋升机制公司员工晋升机制员工晋升机制图 下的信息传递过程。 关键词:UDP 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 ;Socket;C/S模式 中图分类号: TP393 文献标识码:A 文章编号:1009-9115(2008)05-0080-03 Construction of Network Communication on the Base of Socket GAO Wei1, ZHAN Sheng2 (1. Department of Computer Science, Tangshan Teachers College Hebei Tangshan 063000, China; 2. Cadre Department of Tangshan Teachers College, Hebei Tangshan 063000, China) Abstract: Two species provided by Java language, which are Datagramsocket and DatagramPacket, are used to give the flow chart in sending and incepting the database package. Some examples were given to show the information transportation process in the system of terminal/server. Key words: UDP protocol; socket; mode of C/S 现代计算机网络通信是利用操作系统在不同通信协议 层次上提供的接口实现网络进程安全通信。Socket通信属于 网络底层通信,它是网络编程中最常用的概念和工具。在 TCP/IP 网络中,由于使用 Socket,能够在网络中处理复杂 数据,所以在各种网络应用程序中,涉及到数据传送和接收, 一般都会使用 Socket。 1 基本理论及概念的提出 Socket俗称的套接字,是网络上运行的两个程序间双向 通信的一端,它既可以接受请求,也可以发送请求,利用它 可以较为方便地进行网络上的数据传递。在 Java 中,可以 将 Socket类和 ServerSocket类分别用于客户端和服务器,在 任意两台机器间建立连接。Socket类用在客户端,用于建立 与服务器的连接。ServerSocket 类用于服务器端,用于接收 客户端传送的数据。 TCP与 UDP协议:TCP(TransmissionControlProtocol, 传输控制协议)和 UDP(UserDatagramProtocol,用户数据 包协议)就是在网络传输层提供的两种最常用的协议。TCP 是一种基于连接的通讯协议,当两台计算机之间需要进行可 靠的数据传输时,它们通过网络建立起一个稳定可靠的连 接。这种连接是点对点的,通讯的双方则通过这条数据连接 来回传输数据。而 UDP 与 TCP 协议之间的不同在于 UDP 不是一种基于稳定连接的通讯协议。UDP 协议使用数据报 式套接字,UDP 在数据传输之前不需要先建立连接。UDP 没有组装和重传请求的功能,它只是传输数据包,但是并不 保证接收方能够接收到该数据包,也不保证接收方所接收到 的数据和发送方所发送的数据在 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 和顺序上是完全一致 的。其主要工作是:将应用程序传输过来的数据分块交给网 络层,确认接受到分组信息。UDP 使应用程序更有效率, 但只在应用程序并不是立即交流大量数据并且不需要组装 大量的数据报而完成一条消息的时候,否则 TCP 才是最简 单和最有效的选择。 2 Socket通信基于Java的实现 采用数据报通信方式实现 Client/Server 的通信程序。程 序由客户端和服务器端两部分组成。服务器端一旦收到客户 高 伟,等:基于 Socket接口网络通信的实现 - 81 - 端发来的数据报,并回应简单和统一的信息。建立一个简单 的 UDP服务器以实现本文提出的模型,这里为了简化设计, 省略有些代码。 2.1 服务器端程序 import java.net.*; import java.util.*; import java.io.*; public class ChatServer{ ServerSocketserver=null; CollectioncClient=newArrayList(); Public Chat Server(intport) throwsException {server=newServerSocket(port); } publicvoidstartServer()throwsException {while(true) {Sockets=server.accept(); cClient.add(newClientConn(s));}} classClientConnimplementsRunnable {Sockets=null; publicClientConn(Sockets) {this.s=s; (newThread(this)).start();} publicvoidsend(Stringstr)throwsIOException{ DataOutputStreamdos=newDataOutputStream(s.getOutpu tStream()); dos.writeUTF(str); } publicvoidrun() {try{DataInputStreamdis=newDataInputStream(s.getInpu tStream()); Stringstr=dis.readUTF(); while(str!=null&&str.length()!=0) {System.out.println(str); for(Iteratorit=cClient.iterator();it.hasNext();) {ClientConncc=(ClientConn)it.next(); if(this!=cc) {cc.send(str);}} str=dis.readUTF(); //send(str); } s.close(); cClient.remove(this); } catch(IOExceptione){System.out.println("clientquit"); try{if(s!=null) s.close();cClient.remove(this); } catch(IOExceptionioe) {ioe.printStackTrace(); }}}} publicstaticvoidmain(String[]args)throwsException{ ChatServercs=newChatServer(8888); cs.startServer(); }} 2.2 客户器端程序 import java.io.*; import java.net.*; import java.awt.*; import java.awt.event.*; publicclassChatClientextendsFrame{ TextAreata=newTextArea(); TextFieldtf=newTextField(); publicvoidlaunchFrame()throwsException {this.add(ta,BorderLayout.CENTER);this.add(tf,BorderL ayout.SOUTH); tf.addActionListener( newActionListener(){publicvoidactionPerformed(Action Eventae) { try{StringsSend=tf.getText(); if(sSend.trim().length()==0)return; ChatClient.this.send(sSend); tf.setText(""); ta.append(sSend+"\n");} catch(Exceptione){e.printStackTrace();}}}); setBounds(300,300,300,400); setVisible(true); tf.requestFocus();} Sockets=null; publicChatClient()throwsException {s=newSocket("127.0.0.1",8888); launchFrame(); (newThread(newReceiveThread())).start();} publicvoidsend(Stringstr)throwsException {DataOutputStreamdos=newDataOutputStream(s.getOutp utStream()); dos.writeUTF(str); } publicvoiddisconnect()throwsException {s.close();} publicstaticvoidmain(String[]args)throwsException { BufferedReaderbr=newBufferedReader( newInputStreamReader(System.in)); ChatClientcc=newChatClient(); Stringstr=br.readLine(); while(str!=null&&str.length()!=0){cc.send(str); str=br.readLine(); } cc.disconnect(); } classReceiveThreadimplementsRunnable{publicvoidrun() { if(s==null)return;try{ DataInputStreamdis=newDataInputStream(s.getInputStre am()); Stringstr=dis.readUTF(); while(str!=null&&str.length()!=0) {ChatClient.this.ta.append(str+"\n");str=dis.readUTF();}} catch(Exceptione){e.printStackTrace(); }}}} 第 30卷第 2期 唐山师范学院学报 2008年 3月 - 82 - 3 小结 Java 语言中的 Socket 类的功能非常强大。虽然传统编 程语言也可以实现 Socket通信,但其实现 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 的难度很大。 Java拥有自己的语言优势。 (1)Java 语言对线程的内置和本地的支持,它支持多 线程。这样在一台服器与多客户机进行通信就可以建立并启 动多个线程来为客户机服务。而编程人员不需要考虑 CPU 对线程之间的调度。 (2)Java 提供管理数据流的类,用户在传送和接收数 据时,只需定义一个相应对象,用对象相应方法接受和发送 数据就可。很好的解决了传统编程中技术难点。 [参考文献] [1] Y. Daniel Liang. 马海军,景丽,等,译.Java编程原理与实践 [M].北京:清华大学出版社,2005. [2] 张孝祥.Java 就业 培训 焊锡培训资料ppt免费下载焊接培训教程 ppt 下载特设培训下载班长管理培训下载培训时间表下载 教程[M].北京:清华大学出版社, 2003. [3] 朱喜福,林建民,唐永新.Java 语言程序设计[M].北京:人民 邮电出版社:2004,3237-334. [4] Jonathan Knudsen, Patrick Niemeyer. Learning Java (3rd Edition)[M]. O'Reilly, 2005. [5] Steven Haines, Steve Potts. Java™ 2 Primer Plus. Sams Publishing, 2002. (责任编辑、校对:田敬军) 本 刊 声 明 ●为适应我国信息化建设需要,扩大本刊及作者知识信息交流渠道,本刊已被 CNKI中国期刊全文数据库收录, 其作者文章著作权使用费与本刊稿酬一次性给付,免费提供作者文章引用统计分析资料。如作者不同意文章被收录, 请在来稿时向本刊声明,本刊将做适当处理。 ●本刊已加入台湾中文电子期刊服务——思博网(CEPS)(访问网址为 www.ceps.com.tw),凡向本刊投稿者,均 视为其文稿刊登后可供 CEPS收录、转载并上网发行;其作者文章著作权使用费与稿酬一次付清,本刊不再另付其它 报酬。
本文档为【基于Socket接口网络通信的实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_753046
暂无简介~
格式:pdf
大小:613KB
软件:PDF阅读器
页数:3
分类:互联网
上传时间:2011-05-25
浏览量:28