• 回答数

    4

  • 浏览数

    276

木图先生
首页 > 学术期刊 > 论文参考文献ipsocket

4个回答 默认排序
  • 默认排序
  • 按时间排序

樑樑1982

已采纳

TAGS: 毕业论文 计算机 基于 远程 对象 RMI 方法 实现 调用 哪位老兄有计算机毕业设计论文啊?是基于java的,小弟急用,谢谢!用RMI开发基于Java的企业分布式应用我站还提供更多的免费计算机论文,但免费论文仅供参考,建议广大网友下载后不要轻易采用。摘要由于Java具有跨平台、代码可移植性、安全高效等广泛而强大的功能,因而在开发网络分布式应用的时候,可以用它自身的机制实现分布式计算,一种基于Java的远程方法调用(RMI)为我们开发企业分布式应用提供了行之有效的解决方案。关键词 Java RMI 企业分布式应用 1 概述随着电力企业信息化建设的不断深入和发展,企业内部和企业与企业之间对信息、对数据的交换量大大增加,这些信息与数据越来越需要在不同的计算机网络间传送和交流。同时,由于各单位、各部门之间的现存的计算机网络硬件设备与操作系统千差万别,应用水平也参差不齐,因此,开发出跨平台、可移植、高效安全的网络分布式应用来服务于电力企业,就显得尤为重要。在当今的编程术语里,分布式计算已经成为很常见的词,它将企业的业务数据和程序分布在网络的不同物理位置上,通过调动网络上多台计算机的处理能力,发挥远程调用数据的功能。远程方法调用(Remote Method Invocation ,RMI),可以在不同的Java虚拟机(JVM)之间实现对象与对象的通信。JVM可以位于相同或不同计算机上,在多个JVM中,一个JVM可以调用存储在其它JVM的对象的方法。本文主要介绍RMI的特点,分析应用RMI进行企业分布式计算的原理,以及利用RMI实现基于Java的企业分布式应用的具体步骤。2 远程方法调用(RMI)的特点2.1 TCP编程的缺点由于Java编程语言设计之初就是面向对象和支持网络的,因此,基于对象的RMI机制已经内置在Java平台中。我们经常会在网络开发中使用TCP/IP编程,这样,自然而然地就会涉及到Socket(套接字)编程。但是,使用Socket编程需要大量重复编码,在复杂分布式操作时显得非常麻烦,而且易于出错。因此,如何快速、高效、安全、可扩展地进行网络分布式计算,是开发者们一贯追求和倡导的主题。直到RMI的出现,这种繁杂、低效的开发情况才有很大改观。2.2 RMI编程的特点当我们利用对象序列化在网络上分配对象时,RMI提供了非Java平台无法匹敌的独特而强电子商务资料库)*!%267'$#7'455大的分布式计算模型,RMI主要有以下特点:? 客户机可以向本地方法一样调用远程服务器上的方法;? 可以根据接口指定客户机/服务器编程合约;? 可以从服务器对象缺省二进制类文件,自动生成调动/反调动代码;? 将Java编程模型扩展到机器边界(和Java虚拟机(JVM)边界之外),不需要任何特殊语法;? 还可以和一个远程方法调用中的数据同时传输行为(代码)。尽管RMI不是唯一的企业级远程对象访问方案,但它却是最容易实现的。2.3 RMI与CORBA作为分布式应用程序框架的规范,COBRA首当其冲,它是由对象管理组织(OMG)开发的。与CORBA不同的是,CORBA能够利用不同编程语言(例如C/C++、Basic等)开发实现分布式应用,而RMI是一种纯Java解决方案。在RMI中,程序的所有部分都由Java语言编写,这样,开发出来的程序完全符合Java规范,便于实现跨平台访问、扩展和移植。按照笔者所在西北电力建设集团公司的情况看,服务器操作系统主要有Linux和Windows2000 Server,分别存在于公司和部门当中,它们是不同的系统平台;同时,公司下属各个工程项目部又距离很远,近的几十公里,远则达到上千公里甚至位于国外,因此跨平台和远程访问这两大功能在开发企业应用系统时就必须考虑,而RMI恰恰能够用它的自身特点来满足编程需要。3 RMI基本体系结构简介RMI通过TCP/IP在内部使用Socket,象其名称暗示的那样,它能够帮助我们查找并执行远程对象的方法。RMI的目的是让位于不同JVM中的对象,在外观及行为上都像是本地的对象。通常,我们把调用这种远程对象的JVM,称为客户机;而把包括这种远程对象的JVM,称为服务器。尽管对一个远程对象的引用和获得对本地对象的引用有所不同,但我们可以把远程对象像本地对象一样使用。应用程序并不知道一个对象是远程的还是本地的。实际上,远程对象上被调用的方法与本地对象上调用的方法,具有相同的语法结构。作为RMI的底层(会包含复杂的Socket操作),它会自动截获方法调用,找到远程对象,然后处理远程请求。笔者认为,RMI设计的重要之处,就在于不但在设计上实现了远程访问功能,而且实现了设计的透明性。RMI的基本体系结构,概括起来说,由三个抽象层组成:3.1 存根/框架层(Stubs/Skeletons Layer)

124 评论

萤火虫BB

Medit.add(new MenuItem("剪切"));//,new MenuShortcut(KeyEvent.VK_X)));

168 评论

karenchao1983

大量事实证明,确保网络安全已经是一件刻不容缓的大事,网络安全的 毕业 论文选题确立也是一件至关重要的事情。下面是我带来的关于网络安全毕业论文选题的内容,欢迎阅读参考! 网络安全毕业论文选题(一) 1. 教学网页的设计与应用 2. 教学互动网站的设计与实现 3. 个人网站的设计与实现 4. 电子商务网站的设计与实现 5. 基于ASP的动态网站设计与实现 6. 论网上商店的设计 方法 7. 留言板设计与实现 8. 企业公司网站的设计与实现 9. Flash动画设计及制作 10. 基于flash的聊天室的设计 11. 基于FLASH的多媒体课件设计与开发 12. 多媒体课件开发研究 13. 基于ASP学院图书管理系统 14. 图书综合管理系统设计与实现 15. 计算机病毒解析与防范 16. 计算机安全技术应用 17. 管理信息系统设计与实现 18. 信息安全技术及其应用 19. 信息系统分析与设计 网络安全毕业论文选题(二) 1、局域网的组建方法 2、图书管理系统的设计 3、计算机网络安全及防火墙技术 4、校园网站设计 4、数据库语言编写学生学籍管理 5、个人 电脑安全 意识如何提高 6、浅析计算机病毒及防范的 措施 7、浅谈计算机网络安全漏洞及防范措施 8、二十一世纪的计算机硬件技术 9、计算机最新技术发展趋势 10、计算机病毒的研究与防治 11、论述磁盘工作原理以及相关调度算法 12、高校计算机机房管理的维护和探索 13、C语言教学系统设计 14、浅谈子网掩码与子网划分 15、微机黑屏故障与防治研究 16、虚拟局域网的组建与应用 17、学校图书管理系统的设计 18、计算机网络安全管理 网络安全毕业论文选题(三) 1. 病毒入侵微机的途径与防治研究 2. 微机黑屏故障与防治研究 3. NAT技术在局域网中的应用 4. 基于Socket的网络聊天系统开发与设计 5. 计算机网络故障的一般识别与解决方法 6. 访问控制列表ACL在校园网中的应用初探 7. 常用动态路由协议安全性分析及应用 8. 数字证书在网络安全中的应用 9. 计算机病毒的攻与防 10. ARP欺在网络中的应用及防范 11. TCP安全问题浅析 12. 网络入侵手段与网络入侵技术 13. 技术在局域网中的应用 14. IDS技术在网络安全中的应用 15. Dos与DDos攻击与防范措施 16. DHCP安全问题及其防范措施 17. 校园网规划及相关技术 18. 企业网组建及相关技术 19. 网吧组建及相关技术 20. 无线网现状及相关技术 猜你喜欢: 1. 网络工程毕业论文题目 2. 最新版网络工程专业毕业论文题目 3. 网络安全论文参考文献 4. 网络安全征文2000字 5. 网络安全与管理毕业论文最新范文

194 评论

幽香雨草

“对图中的那些函数,我这里稍加解释一下。”

int  WSAStartup(WORD wVersionRequested, LPWSADATA  lpWSAData);

功能是初始化Windows Socket Dll,在Windows下必须使用它。

参数:

“wVersionRequested”表示版本,可以是1.1、2.2等;

“lpWSAData”指向WSADATA数据结构的指针。

int socket(int family, int type, int protocol);

功能是建立Socket,返回以后会用到的Socket值。如果错误,返回-1。

参数:

“int family”参数指定所要使用的通信协议,取以下几个值:AF_UNIX(Unix内部协议)、AF_INET(Internet协议)、AF_NS Xerox(NS协议)、AF_IMPLINK(IMP连接层),在Windows下只能把“AF”设为“AF_INET”;

“int type”参数指定套接字的类型,取以下几个值:SOCK_STREAM(流套接字)、SOCK_DGRAM (数据报套接字)、SOCK_RAW(未加工套接字)、SOCK_SEQPACKET(顺序包套接字);

“int protocol”参数通常设置为0。

int bind(int sockfd, struct sockaddr *my_addr, int addrlen);

功能是把套接字和机器上一定的端口关联起来。

参数:

“sockfd”是调用socket()返回的套接字值;

“my_addr”是指向数据结构struct sockaddr的指针,它保存你的地址,即端口和IP地址信息;

“addrlen”设置为sizeof(struct sockaddr)。

int listen(int sockfd, int backlog);

功能是服务端监听一个端口,直到accept()。在发生错误时返回-1。

参数:

“sockfd”是调用socket()返回的套接字值;

“backlog”是允许的连接数目。大多数系统的允许数目是20,也可以设置为5到10。

int connect(int sockfd, struct sockaddr *serv_addr, int addrlen);

功能是客户端连接服务端监听的端口。

参数:

“sockfd”是调用socket()返回的套接字值;

“serv_addr”保存着目的地端口和IP 地址的数据结构struct sockaddr;

“addrlen”设置为sizeof(struct sockaddr)。

int accept(int sockfd, void *addr, int *addrlen);

功能是服务端接受客户端的连接请求,并返回一个新的套接字,以后服务端的数据传输就使用这个新的套接字。如果有错误,返回-1。

参数:

“sockfd”是和listen()中一样的套接字值;

“addr”是个指向局部的数据结构sockaddr_in的指针;

“addrlen”设置为sizeof(struct sockaddr_in)。

int send(int sockfd, const void *msg, int len, int flags);

int recv(int sockfd, void *buf, int len, unsigned int flags);

功能是用于流式套接字或数据报套接字的通讯,我们数据的真正传输就由它们完成。

参数:

“sockfd”是发/收数据的套接字值;

“msg”指向你想发送的数据的指针;

“buf”是指向接收数据存放的地址;

“len”是数据的长度;

“flags”设置为 0。

int sendto(int sockfd, const void *msg, int len, unsigned int flags,const struct sockaddr *to, int tolen);

int recvfrom(int sockfd, void *buf, int len, unsigned int flags, struct sockaddr *from, int *fromlen);

功能和send、recv类似,不过是用于无连接数据报套接字的传输。

int closesocket(int sockfd)

功能是关闭套接字。

参数“sockfd”为要关闭的套接字值。

程序:

“这里的目的是让大家对Socket编程有个整体了解。不用怕,程序我会详细解释的,首先是服务端的程序。其流程是:

socket()→bind()→listen→accept()→recv()/send()→closesocket()

具体代码如下:”

#include 

#include 

#pragma comment(lib,"Ws2_32")

#define MYPORT 830  /*定义用户连接端口*/

#define BACKLOG 10  /*多少等待连接控制*/

int main()

{

int sockfd, new_fd;                                  /*定义套接字*/

struct sockaddr_in my_addr;          /*本地地址信息 */

struct sockaddr_in their_addr;        /*连接者地址信息*/

int sin_size;

WSADATA ws;

WSAStartup(MAKEWORD(2,2),&ws);           //初始化Windows Socket Dll

//建立socket

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)

{

//如果建立socket失败,退出程序

printf("socket error\n");

exit(1);

}

//bind本机的MYPORT端口

my_addr.sin_family = AF_INET;                     /* 协议类型是INET  */

my_addr.sin_port = htons(MYPORT);            /* 绑定MYPORT端口*/

my_addr.sin_addr.s_addr = INADDR_ANY;   /* 本机IP*/

if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr))== -1)

{

//bind失败,退出程序

printf("bind error\n");

closesocket(sockfd);

exit(1);

}

//listen,监听端口

if (listen(sockfd, BACKLOG) == -1)

{

//listen失败,退出程序

printf("listen error\n");

closesocket(sockfd);

exit(1);

}

printf("listen...");

//等待客户端连接

sin_size = sizeof(struct sockaddr_in);

if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == -1)

{

printf("accept error\n");

closesocket(sockfd);

exit(1);

}

printf("\naccept!\n");

//有连接,发送ww0830字符串过去

if (send(new_fd, "ww0830\n", 14, 0) == -1)

{

printf("send error");

closesocket(sockfd);

closesocket(new_fd);

exit(1);

}

printf("send ok!\n");

//成功,关闭套接字

closesocket(sockfd);

closesocket(new_fd);

return 0;

}

对服务端程序的流程概括:

先是初始化Windows Socket Dll: WSAStartup(MAKEWORD(2,2),&ws);

然后建立Socket: sockfd = socket(AF_INET, SOCK_STREAM, 0)

再bind本机的MYPORT端口:

my_addr.sin_family = AF_INET;         /* 协议类型是INET   */

my_addr.sin_port = htons(MYPORT);       /* 绑定MYPORT端口  */

my_addr.sin_addr.s_addr = INADDR_ANY;   /* 本机IP           */

bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr))

接下来监听端口: listen(sockfd, BACKLOG)

如果有客户端的连接请求,接收它: new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)

最后发送ww0830字符串过去: send(new_fd, "ww0830\n", 14, 0)

收尾工作,关闭socket: closesocket(sockfd);    closesocket(new_fd);  ”

编译、执行,就会一直监听830端口

客户端程序了。其流程是:

socket()→connect()→send()/recv()→closesocket()

比服务端更简单吧!其实现代码如下:”

#include 

#include 

#include 

#pragma comment(lib,"Ws2_32")

#define PORT 830                            /* 客户机连接远程主机的端口 */

#define MAXDATASIZE 100                     /* 每次可以接收的最大字节 */

int main(int argc, char *argv[])

{

int sockfd, numbytes;

char buf[MAXDATASIZE];

struct sockaddr_in their_addr;        /* 对方的地址端口信息 */

if (argc != 2)

{

//需要有服务端ip参数

fprintf(stderr,"usage: client hostname\n");

exit(1);

}

WSADATA ws;

WSAStartup(MAKEWORD(2,2),&ws);         //初始化Windows Socket Dll

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)

{

//如果建立socket失败,退出程序

printf("socket error\n");

exit(1);

}

//连接对方

their_addr.sin_family = AF_INET;                         /* 协议类型是INET  */

their_addr.sin_port = htons(PORT);                       /* 连接对方PORT端口 */

their_addr.sin_addr.s_addr = inet_addr(argv[1]);        /* 连接对方的IP */

if (connect(sockfd, (struct sockaddr *)&their_addr,sizeof(struct sockaddr)) == -1)

{

//如果连接失败,退出程序

printf("connet error\n");

closesocket(sockfd);

exit(1);

}

//接收数据,并打印出来

if ((numbytes=recv(sockfd, buf, MAXDATASIZE, 0)) == -1)

{

//接收数据失败,退出程序

printf("recv error\n");

closesocket(sockfd);

exit(1);

}

buf[numbytes] = '\0';

printf("Received: %s",buf);

closesocket(sockfd);

return 0;

}

对客户端程序的流程概括:

首先是初始化Windows Socket Dll: WSAStartup(MAKEWORD(2,2),&ws);

然后建立Socket: sockfd = socket(AF_INET, SOCK_STREAM, 0)

接着连接服务器方:

their_addr.sin_family = AF_INET;                                 /* 协议类型是INET    */

their_addr.sin_port = htons(PORT);                           /* 连接对方PORT端口      */

their_addr.sin_addr.s_addr = inet_addr(argv[1]);         /* 连接对方的IP  */

connect(sockfd, (struct sockaddr *)&their_addr,sizeof(struct sockaddr))

连接成功就接收数据: recv(sockfd, buf, MAXDATASIZE, 0)

最后把收到的数据打印出来并关闭套接字:

printf("Received: %s",buf);      closesocket(sockfd);

编译结束后,运行服务端,然后。客户端 服务端IP  回车

你会看到服务端发来得数据。

那么基本的点对点通信就没问题了。只要两台机器同时包含服务端和客户端,就可以互相通信了。

当然,你也可以将服务端和客户端分开做,专门一个服务器负责用户登录和转发消息。

流程如下:

A客户端发登录消息-----》服务器

服务器验证发送用户消息----》客户端

A客户端想发消息给B客户端----》先发给服务端

服务器得到消息查询B客户端IP并转发消息。(或者B客户端循环发消息询问服务器有无消息)

通信结束。

112 评论

相关问答

  • 论文参考文献和任务书参考文献

    根据每个高校的毕业论文要求,如果说任务书后面有参考文献,开题报告后面也有,正文后面也有,那就按照相关的毕业论文规定,进行填写; 所有的都写上 不一样!开题报告内

    注册不太麻烦 5人参与回答 2023-12-09
  • 论文参考文献参考多篇

    本科论文的参考文献一般需要加十条。

    没蜡笔的小新 6人参与回答 2023-12-08
  • 论文参考文献ipsocket

    TAGS: 毕业论文 计算机 基于 远程 对象 RMI 方法 实现 调用 哪位老兄有计算机毕业设计论文啊?是基于java的,小弟急用,谢谢!用RMI开发基

    木图先生 4人参与回答 2023-12-08
  • 改革开放论文参考文献参考文献

    科学发展观与中国对外开放战略的调整 内容提要:科学发展观是新一届领导集体对我国社会主义现代化建设指导思想的新发展。以人为本,全面、协调、可持续的发展理念不仅是中

    Rainbow蓓 3人参与回答 2023-12-05
  • 论文参考论文参考文献文献

    知网和万方都有文献引用格式自动生成功能!毕业论文参考文献规范格式一、参考文献的类型参考文献(即引文出处)的类型以单字母方式标识,具体如下:M——专著

    气球飞哇 3人参与回答 2023-12-10