C#-PHP套接字连接
发布时间:2020-12-15 17:24:45 所属栏目:百科 来源:网络整理
导读:我正在通过服务器上的php脚本控制的PC上编写程序.我目前正在使用php来来回ftp文件并使用c#读取文件并根据文件中的数据执行命令.然而,这不是一个理想的解决方案. 我想看一个关于如何使用php将数据发送到c#程序pver套接字的教程或示例. 我想发送的数据示例 1:c
我正在通过服务器上的php脚本控制的PC上编写程序.我目前正在使用php来来回ftp文件并使用c#读取文件并根据文件中的数据执行命令.然而,这不是一个理想的解决方案.
我想看一个关于如何使用php将数据发送到c#程序pver套接字的教程或示例. 我想发送的数据示例 1:control1 1:control2 1:control3 0:control4 0: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:control1n1:control2n1:control3n0:control4n0: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"))); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |