歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

mini2440上Apache php的socket通信

server.php

[php]
  1. <?php  
  2. //確保在連接客戶端時不會超時   
  3. set_time_limit(0);  
  4.   
  5. //設置IP和端口號   
  6. $address='127.0.0.1';  
  7. $port=2009;    //調試的時候,可以多換端口來測試程序!   
  8.   
  9. //創建一個SOCKET   
  10. if(($sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP))<0)  
  11. {  
  12.   echo "socket_create() 失敗的原因是:".socket_strerror($sock)."<br>";  
  13. }  
  14.   
  15. //綁定到socket端口   
  16. if(($ret=socket_bind($sock,$address,$port))<0)  
  17. {  
  18.   echo "socket_bind() 失敗的原因是:".socket_strerror($ret)."\n";  
  19. }  
  20.   
  21. //開始監聽   
  22. if(($ret=socket_listen($sock,4))<0)  
  23. {  
  24.   echo "socket_listen() 失敗的原因是:".socket_strerror($ret)."\n";  
  25. }  
  26.   
  27. do {  
  28. if (($msgsock = socket_accept($sock)) < 0)  
  29. {  
  30.   echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "\n";  
  31.   break;  
  32. }  
  33. //發到客戶端   
  34. $msg ="<font color=red>歡迎進入服務器!</font><br>";  
  35. socket_write($msgsock$msg, strlen($msg));  
  36.   
  37. echo "讀取客戶端發來的信息<br>";  
  38. $buf = socket_read($msgsock,8192);  
  39.   
  40.   
  41. $talkback = "收到的信息:$buf<br>";  
  42. echo $talkback;  
  43. /* if(socket_write($msgsock, $talkback, strlen($talkback))<0) 
  44.      { 
  45.  
  46.       echo "socket_write() failed: reason: " . socket_strerror($msgsock) . "\n"; 
  47.      } 
  48.      else 
  49.      { 
  50.       echo "發送成功"; 
  51.      }*/  
  52.   
  53.   
  54. //echo $buf;   
  55. socket_close($msgsock);  
  56. while (true);  
  57.   
  58. socket_close($sock);  
  59. ?>  
client.php

[php]
  1. <?php  
  2. error_reporting(E_ALL);  
  3. set_time_limit(0);  
  4. echo "<h2>TCP/IP Connection</h2>\n";  
  5.   
  6. $service_port = 2009;  
  7. $address = "127.0.0.1";  
  8.   
  9. $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);  
  10. if ($socket < 0)  
  11. {  
  12.   echo "socket_create() failed: reason: " . socket_strerror($socket) . "\n";  
  13. }  
  14. else  
  15. {  
  16.   echo "OK....\n";  
  17. }  
  18.   
  19. echo "試圖連接 $address 端口 $service_port ...<br>";  
  20. $result = socket_connect($socket$address$service_port);  
  21. if ($result < 0)  
  22. {  
  23.   echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";  
  24. }  
  25. else  
  26. {  
  27.   echo "連接OK<br>";  
  28. }  
  29.   
  30. $in = "Hello\r\n";  
  31. $in .= "我是Chester\r\n";  
  32. $out = '';  
  33. $out1='';  
  34.   
  35.   
  36. if(!socket_write($socket$in, strlen($in)))  
  37. {  
  38.   echo "socket_write() failed: reason: " . socket_strerror($socket) . "\n";  
  39. }  
  40. else  
  41. {  
  42.   echo "發送到服務器信息成功!<br>";  
  43.   echo "發送的內容為:<font color='red'>$in</font> <br>";  
  44. }  
  45.   
  46. while($out = socket_read($socket, 8192))  
  47. {  
  48.   echo "接收服務器回傳信息成功!<br>";  
  49.   echo "接受的內容為:",$out;  
  50. }  
  51.   
  52. echo "關閉SOCKET...<br>";  
  53. socket_close($socket);  
  54. echo "關閉OK<br>";  
  55. ?>  
實驗結果如下:

Copyright © Linux教程網 All Rights Reserved