1. 程式人生 > >Socket編程 之使用fsockopen()函數

Socket編程 之使用fsockopen()函數

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);
 4
5 //打印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()函數