程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 用php的socket跟flash的socket通信

用php的socket跟flash的socket通信

編輯:PHP綜合

關於socket不多說了,這個網上的資料很多,關於flash的資料也很多,這裡只說在網上找不到資料或者資料很少的哦東西

php的socket資料可謂少之又少,光是在google上搜php socket,出來的結果頁就是那麼三四篇文章,點進去看看,基本都是

從手冊上抄下來的,一點問題都起不了,以至於我花了兩天時間才使php和flash成功通信,呵呵

其實,php和flash的socket通信不是問題的難點,難點在於flash的安全策略,特別是socket,特別是在flash player 10中要求更加

嚴格.

下面分幾個部分來說:php的socket\flash的socket\flash的安全策略\怎麼用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) . "\n";
16. }
17.

18. if (($ret = socket_bind($sock, $address, $port)) < 0) {
19. echo "socket_bind() failed: reason: " . socket_strerror($ret) . "\n";
20. }
21.

22. if (($ret = socket_listen($sock, 5)) < 0) {
23. echo "socket_listen() failed: reason: " . socket_strerror($ret) . "\n";
24. }
25. do {
26. if (!($msgsock = socket_accept($sock))) {
27. echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "\n";
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."\0", strlen($msg."\0"));
39. }
40.

41. //答復數據
42.

43. $talkback = "PHP: You said '$buf'.\n";
44. socket_write($msgsock, $talkback, strlen($talkback));
45.

46. }
47.

48. } while (true);
49. socket_close($msgsock);
50. } while (true);
51. //socket_close($spawn);
52. //socket_close($socket);
53. ?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved