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++ 程序中,我扫描文件夹并将响应写入同一文件夹。
我有个人服务器,想给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++ 程序中,我扫描文件夹并将响应写入同一文件夹。