我想看一个关于如何使用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套接字连接所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)