Socket編程 之使用fsockopen()函數
阿新 • • 發佈:2018-08-22
parameter local spa form serve nco study glob param
fsockopen函數:初始化一個套接字連接到指定主機(hostname
)
get方式:
client.php
1 <?php 2 //創建連接 3 $fp=fsockopen(‘localhost‘,80,$error,$errstr,10); 4 5 //檢測 6 if (!$fp){ 7 echo $errstr;die; 8 } 9 10 //拼接http請求報文 11 $http=‘‘; 12 13 //請求報文包括3部分 請求行 請求頭 請求體 14 $http.="GET /phpStudy/http/server.php?username=huahua HTTP1.1\r\n";15 16 //請求頭信息 17 $http.="Host:localhost\r\n"; 18 $http.="Connection:close\r\n\r\n"; 19 20 //請求體:無 21 22 //發送請求 23 fwrite($fp,$http); 24 25 //獲取結果 26 $res=‘‘; 27 while(!feof($fp)){ 28 $res.=fgets($fp); 29 } 30 31 //輸出內容 32 echo $res;
server.php
1 <?php 2 //打印$_POST檢測參數有沒有過來 3 var_dump($_POST); 45 //打印cookie內容 6 // var_dump($_COOKIE); 7 8 //打印server的內容 9 // var_dump($_SERVER); 10 11 //打印$_GET 12 // var_dump($_GET); 13 14 //打印$GLOBALS 15 var_dump($GLOBALS);
post方式:
post.php
1 <?php 2 //創建連接 3 $fp=fsockopen(‘localhost‘,80,$errno,$errstr,10); 4 5 //檢測 6 if (!$fp){ 7 echo $errstr;die;8 } 9 10 //拼接http請求報文 11 $http=‘‘; 12 13 //請求報文包括3部分 請求行 請求頭 請求體 14 $http.="POST /phpStudy/http/server.php HTTP/1.1\r\n"; 15 16 //請求頭信息 17 $http.="Host:localhost\r\n"; 18 $http.="Connection:close\r\n"; 19 $http.="Cookie:username=admin;uid=200\r\n"; 20 $http.="User-agent:firefox-chrome-safari-ios-android\r\n"; 21 $http.="Content-type:application/x-www-form-urlencoded\r\n"; 22 $http.="Content-length:39\r\n\r\n"; 23 24 //請求體 25 $http.="[email protected]&username=admin\r\n"; 26 27 //發送請求 28 fwrite($fp,$http); 29 30 //獲取結果 31 $res=‘‘; 32 while(!feof($fp)){ 33 $res.=fgets($fp); 34 } 35 36 //輸出內容 37 echo $res;
問題1:返回內容我們用什麽?echo
問題2:請求體包括哪3部分? 行 頭 體
問題3:使用post方式請求時,使用什麽符號來連接參數?&
Socket編程 之使用fsockopen()函數