这是场景:
用户可以访问两台计算机
由于防火墙限制,这些计算机无法与网络套接字通信
但是,两者都可以访问具有第三台计算机上的读/写权限的公共网络共享
我的问题是:是否可以编写在两台机器上执行的小应用程序,允许通过仅使用网络共享上的文件在两者之间建立通信通道?理想情况下,它会模拟流和套接字行为.
我想是这样的:
1)它将涉及两个用于通信的文件,每个方向一个
2)并且有可能在另一个进程正在通过网络写入文件时读取文件.
但我不确定它是否可行,主要是因为我怀疑第2点.但是,在使用NFS的类似Unix的环境中也许是可能的.
可能吗?它已经存在吗?
我认为首先将流分成数据包是个好主意。然后这些数据包应该作为文件出现在公共目录中。两种方式(a->b 和 b->a)必须有两个“命名空间”。为了方便调试,文件名应该包含时间戳,而不仅仅是增量部分。
文件只有一个问题:即使文件非常小,接收器也可以在文件未完全刷新时捕获它,我的意思是文件仅准备就绪(常见情况:0 字节长),或者在文件传输期间发生网络错误。转移。为避免这种情况,发件人应:
因此,接收者只有在 100% 确定文件已完全写入时才会选择重命名后的文件。
在发送新文件之前,发送者可能会检查临时文件,如果存在,则意味着上次传输被中止。
创建新的传输文件时,发送方应创建一个信息文件,其中包含有关正在发送的传输数据包的信息,因此在中止时,它将包含有关失败数据包的信息。也许,唯一的信息是传输时间(记住:临时文件名不包含时间戳),但总比没有好。
| 归档时间: |
|
| 查看次数: |
291 次 |
| 最近记录: |