C#-PHP套接字连接

C#-PHP套接字连接,第1张

概述我正在通过服务器上的php脚本控制的PC上编写程序.我目前正在使用php来来回ftp文件并使用c#读取文件并根据文件中的数据执行命令.然而,这不是一个理想的解决方案. 我想看一个关于如何使用php将数据发送到c#程序pver套接字的教程或示例. 我想发送的数据示例 1:control11:control21:control30:control40:control5 谁能指出我正确的方向? 我正在通过服务器上的PHP脚本控制的PC上编写程序.我目前正在使用PHP来来回ftp文件并使用c#读取文件并根据文件中的数据执行命令.然而,这不是一个理想的解决方案.

我想看一个关于如何使用PHP将数据发送到c#程序pver套接字的教程或示例.

我想发送的数据示例

1:control11:control21:control30:control40:control5

谁能指出我正确的方向?

解决方法 而不是尝试让你的服务器端PHP脚本将数据发送到C#程序,这将给你带来一堆令人头疼的问题,为什么不在PHP脚本上写一些东西,给定页面的特定请求,输出当前排队的说明?然后,C#程序可以只对页面进行WebRequest并接收其指令.

例如:

== PHP SCRIPT ==

<?PHP    //main execution.    process_request();    function process_request()    {        $header = "200 OK";        if (!empty($_GET['q']) && valIDate_request())        {            switch ($_GET['q'])            {                case "get_instructions":                    echo get_instructions();                    break;                case "something_else":                    //do something else depending on what data the C# program requested.                    break;                default:                    $header = "403 ForbIDden"; //not a valID query.                    break;            }        }        else { $header = "403 ForbIDden"; } //invalID request.        header("http/1.1 $header");    }    function valIDate_request()    {        //this is just a basic valIDation,open to you for how you want to valIDate the request,if at all.        return $_SERVER["http_USER_AGENT"] == "MyAppname/1.1 (Instruction Request)";    }    function get_instructions()    {                    //pseudo function,for example purposes only.        return "1:control1\n1:control2\n1:control3\n0:control4\n0:control5";    }?>

现在实际从请求中检索数据:

== C#客户代码==

private string queryServer(string command,Uri serverpage){    string qString = string.Empty;    httpWebRequest qRequest = (httpWebRequest)httpWebRequest.Create(serverpage.absoluteUri + "?q=" + command);    qRequest.Method = "GET";    qRequest.UserAgent = "MyAppname/1.1 (Instruction Request)";    using (httpWebResponse qResponse = (httpWebResponse)qRequest.GetResponse())        if (qResponse.StatusCode == httpStatusCode.OK)            using (System.IO.StreamReader qReader = new System.IO.StreamReader(qResponse.GetResponseStream()))                qString = qReader.ReadToEnd().Trim(); ;    return qString;}

这是一个粗略的模板,具有最小的错误处理,希望它足以让您入门.

编辑:Woops,忘了包含一个示例用法:

MessageBox.Show(queryServer("get_instructions",new Uri("http://localhost/interop.PHP")));
总结

以上是内存溢出为你收集整理的C#-PHP套接字连接全部内容,希望文章能够帮你解决C#-PHP套接字连接所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1234430.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存