ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:22.58KB ,
资源ID:17539836      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17539836.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(socket通信Word文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

socket通信Word文档格式.docx

1、 /用于向客户端发送数据的输出流 DataOutputStream dos = new DataOutputStream(socket.getOutputStream(); /用于接收客户端发来的数据的输入流 DataInputStream dis = new DataInputStream(socket.getInputStream(); System.out.println(服务器接收到客户端的连接请求: + dis.readUTF(); /服务器向客户端发送连接成功确认信息 dos.writeUTF(接受连接请求,连接成功!); /不需要继续使用此连接时,关闭连接 socket.clos

2、e(); ss.close(); catch (IOException e) e.printStackTrace(); 客户端:ClientDemo.javaimport java.io.OutputStream;import .UnknownHostException;public class ClientDemo /* Socket socket = null; socket = new Socket(localhost,8888); /获取输出流,用于客户端向服务器端发送数据 /获取输入流,用于接收服务器端发送来的数据 /客户端向服务器端发送数据我是客户端,请求连接! /打印出从服务器端

3、接收到的数据 System.out.println(dis.readUTF(); /不需要继续使用此连接时,记得关闭哦 catch (UnknownHostException e) RMI(Remote Method Invocation)远程方法调用是一种计算机之间利用远程对象互相调用实现双方通讯的一种通讯机制。使用这种机制,某一台计算机上的对象可以调用另外 一台计算机上的对象来获取远程数据。RMI是Enterprise JavaBeans的支柱,是建立分布式Java应用程序的方便途径。在过去,TCP/IP套接字通讯是远程通讯的主要手段,但此开发方式没有使用面向对 象的方式实现开发,在开发一

4、个如此的通讯机制时往往令程序员感觉到乏味,对此RPC(Remote Procedure Call)应运而生,它使程序员更容易地调用远程程序,但在面对复杂的信息传讯时,RPC依然未能很好的支持,而且RPC未能做到面向对象调用的开发模 式。针对RPC服务遗留的问题,RMI出现在世人面前,它被设计成一种面向对象的通讯方式,允许程序员使用远程对象来实现通信,并且支持多线程的服务,这 是一次远程通讯的革命,为远程通信开辟新的里程碑。RMI的开发步骤1 先创建远程接口及声明远程方法,注意这是实现双方通讯的接口,需要继承Remote2 开发一个类来实现远程接口及远程方法,值得注意的是实现类需要继承Unica

5、stRemoteObject3 通过javac命令编译文件,通过java -server 命令注册服务,启动远程对象4 最后客户端查找远程对象,并调用远程方法简单实例首先为服务建立一个Model层,注意因为此对象需要现实进行远程传输,所以必须继承Serializablec-sharp view plaincopy5 package rmi.model;6 import java.io.Serializable;7 /注意对象必须继承Serializable 8 public class PersonEntity implements Serializable 9 private int id;

6、10 private String name;11 private int age;12 public void setId(int id) 13 this.id = id;14 15 public int getId() 16 return id;17 18 public void setName(String name) 19 this.name = name;20 21 public String getName() 22 return name;23 24 public void setAge(int age) 25 this.age = age;26 27 public int ge

7、tAge() 28 return age;29 30 创建远程接口PersonService,注意远程接口需要继承Remotejava view plaincopy31 package rmi.service;32 import java.rmi.Remote;33 import java.rmi.RemoteException;34 import java.util.List;35 import rmi.model.*;36 /此为远程对象调用的接口,必须继承Remote类 37 public interface PersonService extends Remote 38 public

8、List GetList() throws RemoteException;39 建立PersonServiceImpl实现远程接口,注意此为远程对象实现类,需要继承UnicastRemoteObject40 package rmi.serviceImpl;41 import java.rmi.RemoteException;42 import java.rmi.server.UnicastRemoteObject;43 import java.util.LinkedList;44 import java.util.List;45 import rmi.model.PersonEntity;4

9、6 import rmi.service.*;47 /此为远程对象的实现类,须继承UnicastRemoteObject 48 public class PersonServiceImpl extends UnicastRemoteObject implements PersonService 49 public PersonServiceImpl() throws RemoteException 50 super();51 / TODO Auto-generated constructor stub 52 53 Override 54 public List GetList() throws

10、 RemoteException 55 / TODO Auto-generated method stub 56 System.out.println(Get Person Start!57 List personList=new LinkedListjavac rmi/remotingservice/Program.java获取Program.class(如何阁下使用的MyEclipse等开发工具,可跳 过此步,直接在*/bin文件夹中直接调用已经生成的Program.class),然后输入D:/RMI/RemotingService /srcjava rmi/remotingservice

11、/Program启动服务。75 package rmi.remotingservice;76 import java.rmi.Naming;77 import java.rmi.registry.LocateRegistry;78 79 import rmi.service.*;80 import rmi.serviceImpl.*;81 public class Program 82 public static void main(String args) 83 / TODO Auto-generated method stub 84 try 85 PersonService personS

12、ervice=new PersonServiceImpl();86 /注册通讯端口 87 LocateRegistry.createRegistry(6600);88 /注册通讯路径 89 Naming.rebind(rmi:/127.0.0.1:6600/PersonService, personService);90 System.out.println(Service Start!91 catch (Exception e) 92 / TODO Auto-generated catch block 93 e.printStackTrace();94 95 96 最后建立客户端进行测试,注

13、意客户调用的RMI路径必须服务器配置一致97 package rmi.remotingclient;98 import java.rmi.Naming;99 import java.util.List;100 import rmi.model.PersonEntity;101 import rmi.service.*;102 public class Program 103 public static void main(String args) 104 try 105 /调用远程对象,注意RMI路径与接口必须与服务器配置一致 106 PersonService personService=(

14、PersonService)Naming.lookup(107 List 此接口包含IDL接口的Java版本。它继承自org.omg.CORBA.Object,提供标准的CORBA对象功能。 BillingHelper.java 此类提供辅助功能,Helper类负责读写数据类型到CORBA流,以及插入和提取数据类型。 BillingHolder.java This final class holds a public instance member of type Billing. BillingOperations.java 此接口包含successBilling()和shutdown()方

15、法。 BillingPOA.java 此抽象类是基于流的服务器Skeleton,为服务器提供基本的CORBA功能。它继承org.omg.PortableServer.Servant, 实现了InvokeHandler接口和BillingOperations接口。服务器类BillingServant继承BillingPOA。 _BillingStub.java 此类是客户端stub,为客户端提供CORBA功能。它继承org.omg.CORBA.Object,提供标准CORBA对象功能。还扩展了 BillingOperations接口和org.omg.CORBA.portable.IDLEntit

16、y接口。3)实现服务器端一旦使用idlj编译器后,就可以使用它产生的Skeleton装配服务器应用程序了。另外要实现远程接口方法,服务器代码应包含启动ORB和等待远程客户端调用的机制。服务器端由两个类组成,一个是servant,另一个是Server。servant是BillingImpl类,是Billing IDL接口的实现,每个Billing实例均由BillingImpl实例实现。servant是BillingPOA的子类。servant包含了IDL定义的所有方法,与通常的Java方法类似。server类含服务器的main()方法,它: 创建和初始化ORB实例 获得根POA的引用并激活POA

17、Manager 创建一个Servant实例(CORBA的Billing对象的实现)并通知ORB 获得根命名上下文 在命名上下文用“Billing”名注册新对象 等待客户端调用此新对象【BillingImpl.java源码】:124 import org.omg.CORBA.ORB;125 import BillingApp.*;126 class BillingImpl extends BillingPOA 127 private ORB orb;128 public void setORB(ORB orb_val) 129 this.orb = orb_val;130 131 132 public String successBilling() 133 return nBilling success!n;134 135 136 public void shutdown() 137 orb.shutdown(false);138 139 【BillingServer.java源码】:140 import org.omg.CORBA.ORB;141 import org.omg.CosNaming.NameComponent;142 import org.omg.CosNaming.Nam

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1