我们有一个解决方案,其中一些硬件连接到 Win 7 机器上的 COM 端口,并与我们的 Java 应用程序交互。硬件希望使用 PPP 服务器通过 TCP/IP 透明地连接到其他服务器。
有人对如何做到这一点有建议吗?从 Java 应用程序启动 OS 本机 PPP 服务器,并连接到 COM 端口?这是怎么做到的?
您可能会惊讶地发现 Win7 仍然原生支持 PPP。
按照这些步骤(或类似的步骤),你应该很高兴。自从可能是 Win98 或 Win2k 以来,我实际上并没有执行过 PPP 连接,但这些步骤看起来与他们支持的步骤非常相似。这并不简单,但是这些应该可以帮助您完成 80% 或 90% 的工作(最后 10-20% 将是正确配置串行连接的正常毛躁刺激 - 串行通信涉及的选项太多,并且PPP 使其在第一次连接尝试时正确运行)。
现在您需要为 PPP 连接设置“网络适配器”
现在在新的网络适配器上配置各种 PPP 设置:
一旦硬件设备建立到 Win7 COM 端口的 PPP 连接,Java 应用程序应该能够通过 PPP 链接进行通信,就好像它是一个普通的网络适配器一样。祝你好运!
这是使用 VirtualBox 的一种解决方法。我不知道如何在 Win7 上本地运行 PPP 服务器。
pppd - Ubuntu ttyS0 - VirtualBox Port 1 - Win7 COM1 -- RS232 -- 目标的 ppp 客户端
打开一个 Ubuntu 终端
生效的 pppd 选项:
nodetach #(来自命令行)
holdoff 1 #(来自命令行)
persist #(来自命令行)
maxfail 0 #(来自命令行)
dump #(来自命令行)
noauth #(来自命令行)
/ dev/ttyS0 # (从命令行)
115200 # (从命令行)
lock # (从 /etc/ppp/options)
nocrtscts # (从命令行)
local # (从命令行)
asyncmap 0 # (从 /etc/ppp /options)
passive # (从命令行)
lcp-echo-failure 4 # (从 /etc/ppp/options)
lcp-echo-interval 30 # (从 /etc/ppp/options)
hide-password # (from /etc/ppp/options)
proxyarp # (from command line)
192.168.17.1:192.168.17.2 # (from command line)
noipx # (from /etc/ppp/options)
Using interface ppp0
Connect: ppp0 <--> /dev/ttyS0
无法确定代理 ARP
本地 IP 地址 192.168.17.1
远程 IP 地址 192.168.17.2 的以太网地址
在@hari 评论的基础上使用 Googlejavax.comm
我找到了关于 TINI 的教程,这可能对您的目的有用:该指南通过 COM 端口与 TINI 库进行 PPP 连接,就像您想做的那样。