C++程序服务

C++ program service

我有个人服务器,想给it.It增加一些新功能it.It是Windows服务器运行宁Windows服务器2019.The核心程序是我用 C++ 写的,但它只是一个核心,无法访问 Internet.It 应该从网页接收一个字符串,return 一个字符串到 it.My 旧方法正在使用ASP 创建一个文件来存储来自网页的字符串并使用我的 c++ 程序覆盖 it.But 如果服务器同时获得两个任务,结果将成为 mess.My ISP 阻塞端口 80所以我使用端口 8012 到 运行 我的 website.My 路由器无法映射到外部的许多端口(服务器中还有一个 FTP 服务和一个邮件服务。)所以我可以我应该只使用端口 8012.What 吗?我应该写一个 C++ HTTP 服务器吗? 服务器信息:

服务端口-内部端口-外部软件

网络 80 8012 IIS

FTP 21 21 Serv-U

FTP-pasv 6000-6009 6000-6009 Serv-U

POP3 110 9110

SMTP 25 9025

远程桌面 3389 3389 Windows

我已经解决了我的 questions.I 我正在使用一些 AJAX 代码来添加时间符号和随机数以避免请求崩溃。 这是 AJAX 代码:

    function GetValue(id)
    {
        return document.getElementById(id).value;
    }
    function SetValue(id,val)
    {
        document.getElementById(id).value=val;
        return;
    }

function GetTRValue() //Time-Random value,avoid messing up request
{
    var rdm=Math.Random().toString(16);
    var dt=new Date();
    var time=dt.getTime().toString(10);
    var tr=rdm+time;
    return tr;
}

function EncodeRequest()
{
    var req=new XMLHttpRequest();
    req.onreadystatechange=function(){
        if(req.readyState==4 && req.status==200)
        {
            SetValue('code',req.responseText);
        }
        else if(req.readyState==4 && req.status!=200)
        {
            alert('Server error:'+req.status);
        }
    }
    req.open('POST','/base/base.asp',true);
    req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
    req.send('type=encode&code='+GetValue('base')+'&srcstr='+GetValue('str')+'&rdm='+GetTRValue());
    return;
}

function DecodeRequest()
{
    var qer=new XMLHttpRequest();
    qer.onreadystatechange=function(){
        if(qer.readyState==4 && qer.status==200)
        {
            SetValue('str',qer.responseText);
        }
        else if(qer.readyState==4 && qer.status!=200)
        {
            alert('Server error:'+qer.status);
        }
    }
    qer.open('POST','/base/base.asp',true);
    qer.setRequestHeader('Content-type','application/x-www-form-urlencoded');
    qer.send('type=decode&code='+GetValue('base')+'&srcstr='+GetValue('code')+'&rdm='+GetTRValue());
    return;
}

在我的ASP文件中,我简单地创建了一个名为"Time-Random Value"的文件夹,并将请求文件here.Then放入等待C++程序的响应,读取它并删除该文件夹。 在我的 C++ 程序中,我扫描文件夹并将响应写入同一文件夹。