Java Windows上的PPP服务器

Java Windows上的PPP服务器,java,windows,tcp,ppp,Java,Windows,Tcp,Ppp,我们有一个解决方案,其中一些硬件连接到Win7机器上的COM端口,并与我们的Java应用程序交互。硬件希望使用PPP服务器通过TCP/IP透明地连接到其他服务器 有人对如何做到这一点有什么建议吗?是否从Java应用程序启动操作系统本机PPP服务器,并连接到COM端口?如何做到这一点?根据我找到的关于javax.comm的@hari评论,使用谷歌,这可能对您的目的很有用:本指南通过COM端口与TINI库建立PPP连接,与您希望的一样。您可能会惊讶地发现Win7仍然在本机上支持PPP 按照这些步骤(

我们有一个解决方案,其中一些硬件连接到Win7机器上的COM端口,并与我们的Java应用程序交互。硬件希望使用PPP服务器通过TCP/IP透明地连接到其他服务器


有人对如何做到这一点有什么建议吗?是否从Java应用程序启动操作系统本机PPP服务器,并连接到COM端口?如何做到这一点?

根据我找到的关于
javax.comm
的@hari评论,使用谷歌,这可能对您的目的很有用:本指南通过COM端口与TINI库建立PPP连接,与您希望的一样。

您可能会惊讶地发现Win7仍然在本机上支持PPP

按照这些步骤(或类似的步骤)进行操作,你应该会做得很好。我从可能是Win98,可能是Win2k开始,就没有实际执行PPP连接,但步骤看起来非常类似于之前的步骤。这并不简单,但这些应该可以让你达到80%或90%(最后10-20%将是正常的头发拉扯刺激获得串行连接正确配置-有太多的选项涉及串行通信和PPP的第一次连接尝试的权利)

  • 打开控制面板
  • 选择“电话和调制解调器”。如果它询问您的位置,请键入任何您需要的信息,以使该对话框愉快(我认为它只需要您的区号,但可能不需要,或者其他内容-我们不使用它并不重要)
  • 告诉它你想安装一个调制解调器,如果找不到,不要担心,你将从列表中选择一个
  • 点击“添加”按钮,告诉它不要自动检测
  • 在“(标准调制解调器类型)”下选择“两台计算机之间的通信电缆”
  • 告诉它使用哪个串行端口
现在您需要为PPP连接设置“网络适配器”

  • 进入控制面板的“网络和共享中心”
  • 单击“设置新连接或网络”
  • 选择“设置拨号连接”
  • 如果它询问您要使用哪种调制解调器,请选择您刚刚设置的“两台计算机之间的通信电缆调制解调器”(除非您的计算机中有实际的调制解调器,否则不应出现这种情况)
  • 为“创建拨号连接”对话框提供一个伪造的电话号码,以便您继续。。。并给它一个你喜欢的连接名,而不是“拨号连接”
  • 单击“连接”,它将尝试拨号。当然会失败的。单击“无论如何都要设置连接”
现在在新网络适配器上配置各种PPP设置:

  • 单击“网络和共享中心”控制面板中的“更改适配器设置”链接
  • 右键单击刚刚创建的网络适配器(“拨号连接”或您指定的任何名称),然后选择“属性”
  • 配置“两台计算机之间的通信电缆”(主要用于设置速度)。在其他选项卡中查找可能需要控制的各种其他选项。不要忘记在“网络”选项卡上配置可能需要的TCP/IPv4属性。如果您使用的是IPv6,请确保也配置了这些内容

一旦硬件设备建立到Win7 COM端口的PPP连接,Java应用程序应该能够通过PPP链路进行通信,就像它是一个常规网络适配器一样。祝你好运

这是一个使用VirtualBox的解决方案。我不知道如何在Win7上本机运行PPP服务器

pppd-ubuntuttys0-VirtualBox端口1-Win7-COM1-RS232-target的ppp客户端

  • 在Win7上准备VirtualBox 5和Ubuntu 16作为来宾操作系统
  • 转到VirtualBox设置->串行端口->端口1
    • 检查:启用串行端口
    • 端口号:COM1 IRQ:4 I/O端口:0x3F8
    • 端口模式:主机设备
    • 检查:连接到现有管道/插座
    • 路径/地址:COM1
  • 打开Ubuntu终端

    • sudo apt config安装ppp
    • sudo-apt-get-install-ppp
    • sudo stty-F/dev/ttyS0 raw
    • sudo stty-F/dev/ttyS0-a
    • sudo pppd/dev/ttyS0 115200 192.168.17.1:192.168.17.2 proxyarp本地noauth nodetach转储nocrtscts被动持久maxfail 0延迟1
    有效的pppd选项:
    nodetach#(从命令行)
    延迟1#(从命令行)
    persist#(从命令行)
    maxfail 0#(从命令行)
    转储#(从命令行)
    noauth#(从命令行)
    /dev/ttyS0#(从命令行)
    115200#(从命令行)
    锁定(来自/etc/ppp/options)
    nocrtscts#(从命令行)
    本地#(从命令行)
    异步映射0#(来自/etc/ppp/options)
    被动#(从命令行)
    lcp回波故障4#(来自/etc/ppp/options)
    lcp回波间隔30#(来自/etc/ppp/options)
    隐藏密码(来自/etc/ppp/options)
    proxyarp#(从命令行)
    192.168.17.1:192.168.17.2#(从命令行)
    noipx#(来自/etc/ppp/options)
    使用接口ppp0
    连接:ppp0/dev/ttyS0
    无法确定代理ARP的以太网地址
    本地IP地址192.168.17.1
    远程IP地址192.168.17.2


  • 您可以使用
    javax.comm
    像通信api一样从Java应用程序访问com端口。我在这里遗漏了一些东西,Java参与了这个过程吗?我想Java应用程序当然必须接受IP连接。windows只支持PPP客户端连接吗?如何在windows上创建PPP服务器?我的意思是在windows服务器上的
    pppd
    ,它将IP、DNS等提供给客户端PPP。