首页 / 网页编程 / PHP / 用php的socket跟flash的socket通信
用php的socket跟flash的socket通信2010-02-26 博客园 火星鸟关于socket不多说了,这个网上的资料很多,关于flash的资料也很多,这里只说在网上找不到资料或者资料很少的哦东西php的socket资料可谓少之又少,光是在google上搜php socket,出来的结果页就是那么三四篇文章,点进去看看,基本都是从手册上抄下来的,一点问题都起不了,以至于我花了两天时间才使php和flash成功通信,呵呵其实,php和flash的socket通信不是问题的难点,难点在于flash的安全策略,特别是socket,特别是在flash player 10中要求更加严格.下面分几个部分来说:php的socketflash的socketflash的安全策略怎么用php解决这个策略希望对缺乏资料的人有所帮助,如果你用的其他后台语言与flash交互,可能比php简单,因为php的确不是个做socket的好东西,但是或许某个时刻你就会用到这个(1)php的socket:先贴一段代码,就是我实现通信的程序中的代码:1. <?php
2. set_time_limit(0);
3. $address = "127.0.0.1";
4. ob_implicit_flush();
5. /*
6. * Created on 2009-9-14
7. *
8. * To change the template for this generated file go to
9. * Window - Preferences - PHPeclipse - PHP - Code Templates
10. */
11.
12. $port = "8083";
13.
14. if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
15. echo "socket_create() failed: reason: " . socket_strerror($sock) . "
";
16. }
17.
18. if (($ret = socket_bind($sock, $address, $port)) < 0) {
19. echo "socket_bind() failed: reason: " . socket_strerror($ret) . "
";
20. }
21.
22. if (($ret = socket_listen($sock, 5)) < 0) {
23. echo "socket_listen() failed: reason: " . socket_strerror($ret) . "
";
24. }
25. do {
26. if (!($msgsock = socket_accept($sock))) {
27. echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "
";
28. break;
29. }
30. /* 开始接受socket传过来的数据s. */
31.
32. do {
33.
34. //如果是安全策略请求,则传输安全策略文件内容
35. if($buf = socket_read($msgsock, 2048)){
36. if(strpos($buf,"policy-file-request")){
37. $msg ="<cross-domain-policy><allow-access-from domain="*" to-ports="*" /></cross-domain-policy>";
38. socket_write($msgsock, $msg."