如何用JAVA实现同网段内从另外一台电脑读取文件?

Python022

如何用JAVA实现同网段内从另外一台电脑读取文件?,第1张

那个人的回答也可以,

不过最简单的方式就是局域网共享,如果你的电脑能访问对方的文件

那么就和读本地文件没有什么区别了.唯一不同的就是新建输入流的时候,文件路径传网络访问路径 如:\\192.168.1.2\share\a.rar 不过你要修改成转义符:

\\\\192.168.1.2\\share\\a.rar

还有一种就是映射网络驱动器,把要访问的电脑磁盘映射成一个本地的磁盘,

那么就访问本地就是了!!!!!socket 感觉用在这里有点牛头不对马嘴,而且还要编写一个服务端.复杂化了.

网桥的自学习算法原理

珞辰

网桥:在数据链路层可以用网桥设备来扩展以太网。网桥工作在数据链路层,它根据MAC 帧的目的地址对收到的帧进行存储转发和过滤。当网桥收到一个数据帧时,并不是向所有的接口转发这个数据帧,而是会进行有条件的转发(网桥会丢弃CRC检验有差错的帧以及帧长过短和过长的无效帧)再根据此帧的目的MAC地址,然后查找转发表(网桥会自己维护转发表,转发表中每一条目都记录了到达某个目的MAC地址的数据帧可以从那个接口进行转发)根据转发表中的条目逐步匹配看该从那个接口转发或是否需要丢弃该数据帧。最简单的网桥只有两个接口(这里所讲的网桥都是两个接口的网桥)。

使用网桥设备的优点:

1,过滤通信量,增大吞吐量(网桥可以隔离碰撞域提高网络的吞吐量)

2,扩大了物理网络的范围(扩展以太网)

3,提供了可靠性(只影响单个网段)

4,可以互连不同的物理层,不同MAC子层和不同速率

使用网桥设备的缺点:

1,使用CMSA/CD算法增加了时延

2,不能进行流量控制,缓存存储空间可能会发生溢出

3,会产生广播风暴

网桥自学习和转发帧的一般步骤:

1,网桥收到一帧后先进行自学习。查找转发表中与收到数据帧的源地址有无匹配的项目。如果没有,就在转发表中增加一个项目(记录数据帧的源地址,进入网桥的接口和时间)。如果有,则把原来的项目进行更新。

2,转发帧。查找转发表中与收到数据帧的目的地址有无相匹配的项目。如果没有,则通过其他的接口(但进入网桥的接口除外)进行转发。如果有,则按转发表中给出的接口进行转发。但应当注意,若转发表中给出的接口就是该帧进入网桥的接口,则应该丢弃这个数据帧(因为这种情况不需要经过网桥进行转发)。

3,使用生成树算法,即互连载一起的网桥在进行彼此通信后,就能找出原来的网络拓扑的一个子集。在这个子集里,整个连通的网络中不存在回路,即在任何两个站点之间只有一条路径。

for example: 如图所示,6个站点通过透明网桥B1和B2连接到一个扩展的局域网上。初始时网桥B1和B2的转发表都为空。假设需要传输的帧序列如下:H2传输给H1;H5传输给H4;H3传输给H5;H1传输给H2;H6传输给H5。请给出这些帧传输完后网桥B1和网桥B2的转发表。假设转发表表项的格式为:[ 站点, 端口 ]。

发送的帧                      B1转发表            B1的处理                          B2转发表              B2的处理

H2--->H1                    H2,1                登记,转发                        H2,1                  登记,转发

H5--->H4                    H5,2                登记,转发                        H5,2                  登记,转发

H3--->H5                    H3,2                登记,丢弃                        H3,1                  登记,转发

H1--->H2                    H1,1                登记,丢弃

H6--->H5                                                                                       H6,2                  登记,丢弃

解释说明:

1,H2主机向H1主机发送帧。连接在同一个局域网上的主机H1和网桥B1都能收到H2主机发送的数据帧。网桥B1收到这个数据帧后,先按源地址H2查找转发表。这时因为网桥B1的转发表为空,于是就把地址H2和收到此帧的接口1 写入到转发表中。这就表示,以后若收到要发给H2的帧,应当从网桥B1的这个接口1 转发出去。接着再按目的地址H1查找转发表。转发表中没有H1的地址,于是通过除收到此帧的接口1 以外的所有接口转发此帧。网桥B2 从其接口1 收到这个转发过来的帧。网桥B2按同样的方式处理收到的帧。网桥B2的转发表中没有H2的地址,因此在网桥B2的转发表中写入地址H2 和接口1 。网桥B2的转发表中没有H1的地址,因此网桥B2会通过除接收此帧的接口1 以外的所有接口转发这个帧。(H1本来就可以直接收到H2发送的数据帧,为什么还要让网桥B1和B2盲目地转发这个帧呢??? 答案是:这两个网桥当时并不知道网络的拓扑结构,因此要通过自学习过程才能逐步弄清所连接的网络拓扑,建立起自己的转发表)

2,H3主机向H5主机发送数据帧。首先看网桥B1,网桥B1从其接口2收到这个数据帧。网桥B1的转发表中没有H3,因此在B1的转发表中写入地址H3 和接口2。再查找目的地址H5。现在网桥B1的转发表中可以查询到H5,其转发的接口是2,和这个帧进入网桥B1的接口一样。于是网桥B1知道,不用自己转发这个帧,H5也能收到H3发送的帧。于是网桥B1把这个帧丢弃,不再继续转发了。再看网桥B2,网桥B2从其借口1 收到这个帧。网桥B2的转发表中没有H3,因此在B2的转发表中写入地址H3 和接口 1。再查找目的地址H5。现在网桥B2的转发表中可以查询到H5,其转发的接口是 2 ,于是网桥B2直接将这个帧从接口2 转发出去。

3,H6主机向H5主机发送数据帧。首先看网桥B2,网桥B2从其接口2 收到这个数据帧。网桥B2的转发表中没有H6,因此在B2的转发表中写入地址H6  和接口 2。再查找目的地址H5。现在网桥B2的转发表中可以查询到H5,其转发的接口是2,和这个帧进入网桥B2的接口一样。于是网桥B2知道,不用自己转发这个帧,H5也能收到H6发送的帧。于是网桥B2把这个帧丢弃,不再继续转发了。再看网桥B1,其根本不会收到H6主机向H5发送的数据帧,所以不会有任何其他操作。

PS:在网桥的转发表中写入的信息除了地址和接口外,还有帧进入该网桥的时间。网桥中的接口管理软件周期性的扫描转发表中的项目。只要在一定时间以前登记的都要删除。这样就使得网桥中的转发表能反映当前网络的最新拓扑状态。还有一点网桥是一种工作在数据链路层的网络设备,它能对于接收到的数据帧进行有条件的转发并且能隔离冲突域。

Messenger 详细分析

 IP Messenger是一款局域网内部聊天、文件传输工具,具有很多优点,

如数据通讯不需要建立服务器、直接在两台电脑间通信和数据传输,支持文件及文件目录的传输,安全快捷以及小巧方便等优异特点,因此很多公司都采用它作为部门、公司内部的IM即时通信工具。

IP Messenger在程序结构方面采用了Windows SDK处理结构,通信方面采用了TCP/UDP通信方式,在文件传输处理方面采用文件映射技术,等等。通过分析IP Messenger的运行、工作原理,可以提高并加深对Windows处理流程的理解,提高SOCKET编程技术等,因此特对其源码进行分析,以抛砖引玉,共同提高大家的编程技术。

1、IP Messenger源代码的下载

在写这篇文章时,IP Messenger的最新版本是2.06,因此大家在下载时尽量选择最新版本下载。IP Messenger源代码的下载地址是http://www.ipmsg.org/,在网站的右上角,点击English page,网站转换到英文界面,网站有英文版以及其它语言的版本,当然还有中文版的链接(http://www.azhi.net/IPMsg/),建议大家尽量下载原版的英文版源代码,以利于学习。

2、IP Messenger源代码的目录及文件

IP Messenger源代码的目录结构及文件详见列表1.1 IP Messenger源代码主要的目录及文件:

列表1.1 IP Messenger源代码主要的目录及文件

属性

名称

描述

目录

SRC

工程文件源代码和INSTALL目录

文件

IPMSG.MAK

VC4及以前版本使用的工程文件,用来指定如何建立一个工程,VC6把MAK文件转换成DSP文件来处理

IPMSG.MDP

后缀MDP(Microsoft DevStudio Project的简称)是老版本的项目文件,相当于DSP文件

PROT-ENG.TXT

英文版的协议描述

PROTOCOL.TXT

日文版的协议描述

README.TXT

英文版的README

README-J.TXT

日文版的README

IP Messenger的SRC目录内容描述在列表1.2,SRC目录及主要文件。

属性

名称

描述

目录

INSTALL

安装程序源代码目录

文件

BLOWFISH.CPP

加密算法源文件

BLOWFISH.H

加密算法头文件

BLOWFISH.H2

加密算法随机数头文件

CFG.CPP

系统配置源文件

IPMSG.CPP

IPMSG的APP源文件

IPMSG.H

IPMSG头文件

LOGDLG.CPP

日志DLG源文件

LOGMNG.CPP

日志处理源文件

MAINWIN.CPP

IP Messenger主窗口源文件

MISCDLG.CPP

消息DLG,关于DLG,以及控件子类化等源文件

MSGMNG.CPP

Socket管理源文件

PLUGIN.CPP

Dll plugin加载源文件

RECVDLG.CPP

接收消息处理源文件

SENDDLG.CPP

发送消息处理源文件

SETUPDLG.CPP

IP Messenger属性配置源文件

SHARE.CPP

文件传输接收管理源文件

TAPP.CPP

应用程序类源文件

TDLG.CPP

DLG类源文件

TLIST.CPP

链表类源文件

TREGIST.CPP

注册表操作类源文件

TWIN.CPP

窗口类源文件

MSGSTR.H

字符串常量头文件

TLIB.H

类、结构等头文件

另外在SRC目录下,还有一个INSTALL目录,该目录中的文件是IP Messenger安装程序的源代码,其主要文件描述在列表1.3 INSTALL目录主要文件。

列表1.3 INSTALL目录主要文件

属性

名称

描述

文件

INSTALL.CPP

安装程序源文件

INSTALL.H

安装程序头文件

以上是IP Messenger的主要目录及其主要源文件的描述,通过列表我们可以清晰看出IP Messenger的功能分布。在以下的详细分析中,我们主要围绕着这些源文件而展开。

3、IP Messenger源代码的工程转换

由于IP Messenger是使用以前版本的VC编写的,因此在打开工程文件时,需要转换该工程文件为VC6版本的工程文件。

双击打开IPMSG.MDP文件,系统提示转换IPMSG.MAK工程配置文件到VC6下的工程文件,如下图所示。

<!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:stroke joinstyle="miter" /><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0" /><v:f eqn="sum @0 1 0" /><v:f eqn="sum 0 0 @1" /><v:f eqn="prod @2 1 2" /><v:f eqn="prod @3 21600 pixelWidth" /><v:f eqn="prod @3 21600 pixelHeight" /><v:f eqn="sum @0 0 1" /><v:f eqn="prod @6 1 2" /><v:f eqn="prod @7 21600 pixelWidth" /><v:f eqn="sum @8 21600 0" /><v:f eqn="prod @7 21600 pixelHeight" /><v:f eqn="sum @10 21600 0" /></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" /><o:lock v:ext="edit" aspectratio="t" /></v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" alt="" style='width:357ptheight:162.75pt'><v:imagedata src="file:///C:\DOCUME~1\andylin\LOCALS~1\Temp\msohtml1\02\clip_image001.jpg" o:href="http://www.vckbase.com/document/journal/vckbase51/images/ipmessengerimg1.jpg" /></v:shape><![endif]-->

单击 “是”按钮,确定将工程转换成VC6的工程。系统提示将MAK工程文件转换成DSP工程文件,如下图所示。

<!--[if gte vml 1]><v:shape id="_x0000_i1026" type="#_x0000_t75" alt="" style='width:375ptheight:270pt'><v:imagedata src="file:///C:\DOCUME~1\andylin\LOCALS~1\Temp\msohtml1\02\clip_image002.jpg" o:href="http://www.vckbase.com/document/journal/vckbase51/images/ipmessengerimg2.jpg" /></v:shape><![endif]-->

单击“确定”按钮,系统根据MAK文件生成IPMSG.DSP文件,以及VC6下的IPMSG.DSW文件,另外系统还生成了IPMSG.NCB和IPMSG.OPT两个文件。

4、IP Messenger的工程配置

IP Messenger的配置和目前VC6的工程配置有些不同,其安装工程文件和工程文件在混合在一起,不像VC6工程文件,不同的工程在不同的项目下,分别进行配置。

单击“Build”菜单,选择“Set Active Configuration…”,弹出“Set Active Project Configuration”对话框,如下图所示。

<!--[if gte vml 1]><v:shape id="_x0000_i1027" type="#_x0000_t75" alt="" style='width:369ptheight:206.25pt'><v:imagedata src="file:///C:\DOCUME~1\andylin\LOCALS~1\Temp\msohtml1\02\clip_image003.jpg" o:href="http://www.vckbase.com/document/journal/vckbase51/images/ipmessengerimg3.jpg" /></v:shape><![endif]-->

IP Messenger的工程配置有6个,分别是Release的英文、日文以及Debug的ipmsg工程和安装工程。通过选择不同的配置,可以编译出不同的工程。根据需要,我们选择ipmsg-Win32 Debug配置作为当前活动工程,此编译配置可以编译出Debug版的ipmsg。

单击“Project”菜单,选择“Settings…”,弹出“Project Settings”对话框,选择“C/C++”标签栏,如下图所示。

<!--[if gte vml 1]><v:shape id="_x0000_i1028" type="#_x0000_t75" alt="" style='width:369ptheight:206.25pt'><v:imagedata src="file:///C:\DOCUME~1\andylin\LOCALS~1\Temp\msohtml1\02\clip_image003.jpg" o:href="http://www.vckbase.com/document/journal/vckbase51/images/ipmessengerimg3.jpg" /></v:shape><![endif]-->

<!--[if gte vml 1]><v:shape id="_x0000_i1029" type="#_x0000_t75" alt="" style='width:414.75ptheight:273pt'><v:imagedata src="file:///C:\DOCUME~1\andylin\LOCALS~1\Temp\msohtml1\02\clip_image004.jpg" o:href="http://www.vckbase.com/document/journal/vckbase51/images/ipmessengerimg4.jpg" /></v:shape><![endif]-->

可以看到,在“Preprocessor definition:”中,工程使用了“JAPANESE”宏定义,也就是说,编译后的Debug版的ipmsg是日文版。当然,可以根据需要,修改此宏为“ENGLISH”,就可以编译出Debug版的英文ipmsg。

当然,在以后的分析中,我们将分析ipmsg的安装工程,那么就应当选择ipmsg-Win32 InstallerDbg配置作为当前活动工程,编译出Debug版的安装工程。

这节的系统配置概述就到此结束,下一节将要分析IP Messenger的系统运行框架及其流程,通过分析和学习,掌握Windows的基本开发思想。

文章知识点与官方知识档案匹配

算法技能树首页概览

31640 人正在系统学习中

打开CSDN,阅读体验更佳

IPMessenger

IPMessenger 用于mac电脑和pc飞秋之间的聊天,文件传输等功能

android IP Messenger,IP Messenger

IP Messenger是一款小巧、极速、免费、开放源代码的多平台弹出式的局域网即时通信软件,可以实现两台电脑间的通信和数据传输,支持捕获指定区域的图像,支持在消息中嵌入图像,支持RSA/Blofish消息数据加密。软件特点1、IP Messenger 的成员检测和消息通信使用 2425/UDP 端口,文件和图像传输使用 2425/TCP 端口。如果这些端口被操作系统或杀毒软件阻止,IP Mess...

继续访问

飞鸽源码特点

 飞鸽源码特点2007年07月25日 星期三 下午 07:37原文地址:http://hi.baidu.com/g_d_h/blog/item/495ee700da604a13738b6522.html1、IP Messenger源代码的下载在写这篇文章时,IP Messenger的最新版本是2.06,因此大家在下载时尽量选择最新版本下载。IP Messenger源代码的下载地址是http:/

继续访问

IP Messenger程序

开源的局域网聊天工具,传输文件非常快,并且方便,可以研究学习一下,也可以在上面优化一下。 以下是源码路径: http://ipmsg.org/index.html.en

继续访问

IP Messenger 系统概述

IP Messenger 详细分析 转自: 作者:武汉市东湖中学朱海清孟学桢 一、系统概述 IP Messenger是一款局域网内部聊天、文件传输工具,具有很多优点,如数据通讯不需要建立服务器、直接在两台电脑间通信和数据传输,支持文件及文件目录的传输,安全快捷以及小巧方便等优异特点,因此很多公司都采用它作为部门、公司内部的IM即时通信工具。 IP Me...

继续访问

飞鸽传书 (IP Messenger) 2007 绿色版.rar

一个局域网通信软件,支持局域网间发信息、传送文件、文件夹、多文件(或文件夹),速度非常快。有了它,局域网间传送文件不必再共享来共享去的了。而且,该软件极度绿色哦:单个执行文件,完全与注册表、初始配置文件没有关系。 IPMsg 是一款局域网内即时通信软件, 基于TCP/IP(UDP). 可运行于多种操作**台(Win/Mac/UNIX/Java), 并实现跨**台信息交流. - 不需要服务器支持. - 支持文件/文件夹的传送 (2.00版以上) - 通讯数据采用 RSA/Blofish 加密 (2.00版以上) - 十分小巧, 简单易用, 而且你可以完全免费使用它 - 目前已有的版本包括: Win32, Win16, MacOS, MacOSX, X11, GTK, GNOME, Java 等, 并且公开源代码. 请查看以下地址以获得相关信息: http://sys.fige.com.cn/soft/ 关于〖飞鸽传书〗绿色版的重要声明 最**接到举报,有人假借本站之名在各大下载网站发布了“飞鸽传书 IP Messenger 2.71”、“QQ飞鸽传书”等,对此,我们郑重声明,“飞鸽传书 IP Messenger”目前的较新版本为2.06版、2007绿色版,所谓的2.71版本根本不存在,其提供的软件包已被众多杀毒安全软件查出有病毒,请大家千万不要下载,以免威胁到自己的电脑安全! 对于以“飞鸽传书”为名制造此恶意软件者,我们保留进一步追究其法律责任的权利!!

IP Messenger v4.0.3飞鸽传书内网通信软件.rar

软件介绍: IP Messenger飞鸽传书是一款用于内网通讯的小工具。这个是绿色版,直接运行ipmsg.exe即可使用。运行后请右键点击ipmsg托盘图标,并在设置对话框中设置用户名称。可设置排序/过滤,右键点击发送/接收对话框。远程命令,允许通过指定消息重新启动计算机或关闭计算机。即通过远程计算机发出的消息,来执行重启/关闭电脑操作,如果接收到这些消息,将开始执行操作。

飞鸽传书 (IP Messenger) V2.11 (VV 纪念版)

软件简介 - IPMsg 是一款局域网内即时通信软件, 基于 TCP/IP(UDP). 可运行于多种操作平台(Win/Mac/UNIX/Java), 并实现跨平台信息交流. - 不需要服务器支持. - 支持文件/文件夹的传送 (2.00版以上) - 通讯数据采用 RSA/Blofish 加密 (2.00版以上) - 十分小巧, 简单易用, 而且你可以完全免费使用它 - 目前已有的版本包括: Win32, Win16, MacOS, MacOSX, X11, GTK, GNOME, Java 等, 并且公开源代码. 请查看以下地址以获得相关信息: http://www.ipmsg.org/index.html.en

Ip Messenger

正在研究。 

继续访问

Ipmsg

目录1 功能介绍2 源码简介3 自述文件(readme)4 版本差异5 软件截图6 相关资源<br /> 飞鸽传书主界面ipmsg全称:IP Messenger,中文名为“飞鸽传书”,是一款由一个名叫H.Shirouzu的日本人开发和维护的用C语言写的局域网聊天和文件传输工具。后来发展为很多志愿者共同开发多种版本。它是一个小巧方便的即时通信软件,它适合用于局域网内甚至广域网间进行实时通信和文档共享。特别是在局域网内传送文件/文件夹的效率很高。它具有很多优点,如数据通讯不需要建立服务器、直接在两台电脑间通信和

继续访问

IP MSG分析

IPMSG算是研究差不多了,但是有些东西在脑子里,却又总结不出来,有些东西,本来是自己想看的,但又在其中没有占太大比重。 1.想通过C++写的IPMSG了解软件架构,但自己本身对软件架构没有什么了解,所以也看不出来什么独特的地方。2.虚函数算是在这儿用得极多了,可是自己并没有理解清楚它与其它方法的区别,或是说优点吧。3.本来想看看什么是IM系统,结果看到的,大部分变成了

继续访问

IP Messenger(IPMsg) 2.50源代码中文版提供下载

差不多一年前翻译制作IPMsg2.50版的中文版,也得到了大家众多的反馈和支持,现在将程序源代码(包括中文资源文件)一并提供下载,供有兴趣的朋友研究。 提供的源代码采用VC6.0编译通过,新版本的编译器没有测试。 下载链接: [本地下载IPMsg-20081126] (2008.11.26更新) [源代码下载] (vc6工程,包含了英文、日文、中文资源)(20081127更新) ...

继续访问

关于飞鸽传书软件的实现原理,配置及使用方法

一.简介 飞鸽传书是由日本人所发明的免费软件,是一款局域网内即时通信软件,基于TCP/IP(UDP),可运行于多种操作平台(Win,Mac,UNIX,Java),并实现跨平台信息交流。不需要服务器支持,支持文件/文件夹的传送(2.00版以上),开发于90年代。通信数据采用RSA/Blofish加密(2.00版以上),十分小巧,简单易用,而且用户可以完全免费使用它;2011年已有的版本包括:Win

继续访问

算法day38|509,70,746

很简单的动规入门题,但简单题使用来掌握方法论的,还是要有动规五部曲来分析。代码随想录视频:手把手带你入门动态规划 | 对应力扣(leetcode)题号:509.斐波那契数_哔哩哔哩_bilibili 本题大家先自己想一想, 之后会发现,和斐波那契数 有点关系。主要是找规律,如何找到一阶台阶有1种,两阶台阶有2种三阶台阶= 二阶+1阶代码随想录视频:带你学透动态规划-爬楼梯(对应力扣70.爬楼梯)| 动态规划经典入门题目_哔哩哔哩_bilibili这道题目力扣改了题目描述了,现在的题目描述清晰很多,相当于

继续访问

最新发布 乘法除法运算符规范

乘法除法运算符规范

继续访问

配置管理

算法

F#