套接字在网络通信中的应用

套接字在网络通信中的应用

ID:22096854

大小:59.00 KB

页数:6页

时间:2018-10-27

套接字在网络通信中的应用_第1页
套接字在网络通信中的应用_第2页
套接字在网络通信中的应用_第3页
套接字在网络通信中的应用_第4页
套接字在网络通信中的应用_第5页
资源描述:

《套接字在网络通信中的应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、套接字在网络通信中的应用:该文介绍了在Java中使用套接字(Socket)技术进行客户机与服务器的通信,来协同完成一个X络计算任务。程序中还用到了Java的多线程技术,具有一定实用价值。  关键词:套接字;X络通信;应用  中图法分类号:TP311:A:1009-3044(2011)17-4040-04  很少有人在接触过Inter后,能拒绝它的诱惑,大量和多样的信息太吸引人了。能与其他人交流和共享信息,其重要性已是无可争议的了,而能够掌握X络开发工具和编程技巧更是广大X络爱好者趋之若骛的目标。  Java是一种具有面向对象、与平台无关、安全稳定、支持多线程等优良特性的计算机语言,其对

2、X络的驾御能力非常强,特别适合于Inter的应用开发。Java小应用程序(Applet)可以嵌入到X页中执行各种X络应用,而Java提供的套接字技术就为小应用程序与服务器通信提供了便利。  本文程序的工作原理是:在客户端通过ysocket=neysocket建立后,一条通信“线路”就建立起来,它可以使用getInputStream()方法获得一个输入流,并用这个输入流读取服务器放入“线路”的信息(但不能读取自己放入“线路”的信息,这就像打时我们只能听到对方放入线路的声音一样)。mysocket还可以使用getInputStream()方法获得一个输出流,并用这个输出流将信息写入“线路”

3、。  在实际编写程序时,把mysocket使用getInputStream()方法获得的输入流接到另一个数据流上,就可以从这个数据流读取从服务器来的信息。同样把mysocket使用getOutputStream()方法获得的输出流接到另一个DataOutputStream数据流上,就可以向这个数据流写入信息,发送给服务器端。  1.2ServerSocket类  我们已经知道客户负责建立客户到服务器的套接字连接,即客户负责呼叫。因此服务器必须先建立一个等待接收客户套接字的ServerSocket对象。  ServerSocket的构造方法是:ServerSocket(intport) 

4、 其中port是一个和客户呼叫的端口号相同的端口号。  建立服务器套接字时也可能发生IOException异常,因此应像下面那样建立接收客户的服务器套接字。  try  {ServerSocketserver_socket=ne()方法获得的输出流将指向客户端套接字使用getInputStream()方法获得的输入流;同样,服务器的套接字使用getInputStream()方法获得的输入流将指向客户端的套接字mysocket使用getOutputStream()方法获得的输出流,从而形成双向对接,也就是说,服务器向自己的输出流写入信息时,客户端能在自己的输入流中读取到这个信息,反之亦然

5、。如图1所示。  2把套接字连接放在一个线程中  套接字连接中涉及到输入流和输出流操作,为了不影响我们做其他的事情,应把套接字连接放在一个单独的线程中去进行。另外,服务器端收到一个客户的套接字后,就应该启动一个专门为该客户服务的线程,这样做也为我们处理多客户的并发操作带来了可能。在下面的程序例1中,客户输入三角形三边的长度并发送给服务器,例2中服务器把计算出的三角形面积返回给客户。通常可以将计算量大的工作放在服务器端,客户负责计算量小的工作,实现客户/服务器交互计算,来完成某项任务。  3程序的运行及程序清单  3.1程序的运行  首先将例2的程序编译通过,并在服务器端运行起来,等待客

6、户的呼叫(服务请求),其执行过程中的效果如图3所示;客户端则使用浏览器访问服务器上的例1这个小应用程序(效果如图2所示),这里小应用程序虽然驻留在服务器端,但它需要下载到客户端的浏览器来运行,因此它还是称做客户端程序。Java小应用程序和应用程序的一个不同之处是,小应用程序只能和它所驻留的服务器建立套接字连接。  3.2程序清单  例1客户端程序puter_client.java  importjava..*;importjava.io.*;  importjava.aportjava.aportjava.applet.*;  publicclassputer_clientextend

7、sAppletimplementsRunnable,ActionListener  {  Buttonbutton;  TextFieldtext1,text2;  Socketsocket=null;  DataInputStreamin=null;DataOutputStreamout=null;  Threadthread;  publicvoidinit()  {  setLayout(ne(socket.getInputStream(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。