[英]PHP webserver connect to C# program on same server — What am I looking for?
因此,我有一個Web服務器,用戶可以在其中遠程控制外部電子板,由於某些條件,該電路板迫使我使用C#作為中間人來放置桌面程序。
我要尋找的魔術關鍵字是什么? 起初,我想到了套接字,但是每個套接字搜索都涉及TCP上的服務器-客戶端...這是同一台機器,因此從理論上講,我可以放回送地址並正常進行。 但這是一種矯kill過正的方法還是唯一的方法?
提前致謝。
編輯:我的C#程序基本上是一個守護程序,它將等待來自PHP腳本的命令。 因此,我可以遠程訪問該網站並指示該C#應用程序。
我建議使用TCP / IP(甚至UDP)(或其他MS消息傳遞協議)的客戶端/服務器體系結構,以便與您的C#程序對話。 您實際上正在做的是為專用硬件編寫設備驅動程序。 通過使其成為客戶端/服務器,您可以:
編輯
我不確定100%的意思。 我假設您想從php腳本中調用C#應用程序。 如果是這樣,也許這會有所幫助:
function execute($command, $stdin) {
$pipes = array();
$process = proc_open($command, array(array('pipe', 'r'), array('pipe', 'w'), array('pipe', 'w')), $pipes);
if ($stdin) fwrite($pipes[0], $stdin);
fclose($pipes[0]);
$stdout = '';
while(!feof($pipes[1])) $stdout .= fgets($pipes[1], 1024);
fclose($pipes[1]);
$stderr = '';
while(!feof($pipes[2])) $stderr .= fgets($pipes[2], 1024);
fclose($pipes[2]);
$return_value = proc_close($process);
return array($stdout, $stderr, $return_value);
}
其中$ command是c#應用程序的路徑和文件名(加上任何命令行參數),如果需要,$ stdin是c#應用程序的標准輸入。
如果您的C#應用正在特定端口(例如8888)上偵聽請求,那么您可能正在尋找:
$handle = fopen("http://localhost:8888/someurl?someparam=somevalue", "r");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.