當前位置:首頁 » 編程語言 » phpsockethttp

phpsockethttp

發布時間: 2022-11-12 09:57:56

php如何使用socket發送郵件,知識要點是什麼

需要了解一下發送郵件的協議 如 smtp, emstp 是如何會話的,郵件格式,和郵件編碼規則
當然最好還是要了解一下 socket 通信,若這些都知道的話,那剩下編碼應不是問題了

郵件編碼和格式可以參考 RFC821,RFC1869, RFC2821 等相關文檔, 裡面有詳細的說明

文檔可到
http://www.rfc.net
http://www.ietf.org
等網站去找

http://www.cnpaf.net(中國協議分析網)對部分RFC文檔進行了翻譯,E文不是很好的話可到上面去找找

若只是用的話,不建議自己去寫,網上很多成熟開源 如 PHPMailer 等,學習的話可以去練練

② php socket 消息頭消息體

給你個地址,上面說的很詳細

http://www.2cto.com/kf/201109/102355.html

③ php的curl和socket的區別

不是socket,curl其實是http請求,你就可以直接理解位頁面操作連接,一般只支持80埠。 而socket,則是可以支持全部埠的。 socket_create()函數就是創建socket連接,可以用來寫socket通訊。

④ 如何用PHP定義socket的包頭

$info["path"] = '/index.html';
$info["host"] = '127.0.0.1';
$info["port"]=80;
$data_string= "name=peter";

這個是發送請求,重新定義了http頭部,具體信息在函數里修改就可以了。

echo url_post($info, $data_string);

function url_post($info, $data_string){
$request = '';
$request.="POST ".$info["path"]." HTTP/1.1\n";
$request.="Host: ".$info["host"]."\n";
//$request.="Referer: $referrer\n";
//$request.="Content-type: application/x-www-form-urlencoded\n";
$request.="Content-length: ".strlen($data_string)."\n";
$request.="Connection: close\n";
$request.="\n";
$request.=$data_string."\n";

//echo $request;

$fp = fsockopen($info["host"],$info["port"]);
fputs($fp, $request);
$result = '';
while(!feof($fp)) {
$result .= fgets($fp, 128);
}
fclose($fp);

return $result;
}

⑤ PHP 求助,SOCKET收不到響應

沒用過php的socket,不過查看socket_read的手冊的時候,看到下面有些人對於win上面的socket的討論,你可以看看:
http://www.php.net/manual/zh/function.socket-read.php
裡面提到一個bug:
https://bugs.php.net/bug.php?id=21197
你可以在socket_read最後加上:PHP_NORMAL_READ這個參數試試:
while($out = socket_read($socket, 2048,PHP_NORMAL_READ))

⑥ php的curl和socket的區別

不是socket,curl其實是http請求,你就可以直接理解位頁面操作連接,一般只支持80埠。 而socket,則是可以支持全部埠的。 socket_create()函數就是創建socket連接,可以用來寫socket通訊。

⑦ php可不可以socket通信長連接,不斷開,然後實現多次通訊

當然可以,我都已經做過udp socket雲端門禁管理系統,伺服器socket監控設備連接狀態,設備通過發送心跳包來維持連接,從而實現長連接,更多詳情http://www.100txy.com/article/54.html

⑧ 如何查看php進程請求的socket詳情

PHP使用socket發送HTTP請求的方法,具體如下:
socket方式:
$socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);//socket_set_option($socket,SOL_SOCKET,SO_SNDTIMEO,array("sec"=>20,"usec"=>0));socket_connect($socket,'www..com',80);//裡面的換行代表 注意拷貝的代碼後面可能有空格$http=<<<eof
GET/HTTP/1.0
Accept:*/*
User-Agent:Lowell-Agent
Host:www..com
Connection:Close
eof;
socket_write($socket,$http,strlen($http));while($str=socket_read($socket,1024))
{
echo$str;
}
socket_close($socket);
fsockopen方式:
$fp=fsockopen("www..com",80,$errno,$errstr,30);if(!$fp){
echo"$errstr($errno)<br/> ";
}else{
$out="GET/HTTP/1.1 ";
$out.="Host:www..com ";
$out.="Connection:Close ";
fwrite($fp,$http);
while(!feof($fp)){
echofgets($fp,128);
}
fclose($fp);
}
原始socket方式:
$fp=stream_socket_client("tcp://www..com:80",$errno,$errstr,30);if(!$fp){
echo"$errstr($errno)<br/> ";
}else{
$http=<<<eof
GET/HTTP/1.0
Accept:*/*
User-Agent:Lowell-Agent
Host:www..com
Connection:Close
eof;
fwrite($fp,$http);
while(!feof($fp)){
echofgets($fp,1024);
}
fclose($fp);
}
stream方式(get):
$http=<<<eof
Host:www..com
User-Agent:Mozilla/5.0(WindowsNT6.1;WOW64;rv:27.0)Gecko/20100101Firefox/27.0Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language:zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3Cookie:BAIDUID=:FG=1;BDUSS=lF--FPnkfhTU;BAIDUPSID=;BD_UPN=13314352;BD_HOME=1;H_PS_PSSID=10047_1435_10874_10212_10501_10496_10753_10796_10219_10355_10666_10597_10095_10658_10442_10700_10460_10360_10618;sug=3;sugstore=0;ORIGIN=2;bdime=0Connection:keep-alive
Cache-Control:max-age=0
eof;
$hdrs=array(
'http'=>array(
'header'=>$http,
'timeout'=>1,//超時秒
'method'=>'GET',//默認方式
'protocol_version'=>'1.1',//默認為1.0),
);
//參數格式參考http://php.net/manual/zh/context.http.php//curl方式的格式可以參考;http://php.net/manual/zh/context.curl.php$context=stream_context_create($hdrs);
echofile_get_contents('http://www..com',0,$context);stream方式post:
$postdata=http_build_query(array('act'=>'save','id'=>387171));$http=<<<eof
Host:www..com
User-Agent:Mozilla/5.0(WindowsNT6.1;WOW64;rv:27.0)Gecko/20100101Firefox/27.0Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language:zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3Content-Type:application/x-www-form-urlencoded;charset=UTF-8Cookie:BAIDUID=:FG=1;BDUSS=lF--FPnkfhTU;BAIDUPSID=;BD_UPN=13314352;BD_HOME=1;H_PS_PSSID=10047_1435_10874_10212_10501_10496_10753_10796_10219_10355_10666_10597_10095_10658_10442_10700_10460_10360_10618;sug=3;sugstore=0;ORIGIN=2;bdime=0Connection:keep-alive
Cache-Control:max-age=0
eof;
#注意post方式需要增加Content-Type
$hdrs=array(
'http'=>array(
'header'=>$http,
'timeout'=>1,//超時秒
'method'=>'POST',
'content'=>$postdata,
'protocol_version'=>'1.1',//默認為1.0),
);
//參數格式參考http://php.net/manual/zh/context.http.php//curl方式的格式可以參考;http://php.net/manual/zh/context.curl.php$context=stream_context_create($hdrs);
echofile_get_contents('http://test.cm/song.php',0,$context);

⑨ 如何在php socket伺服器中對post進行相應

php的socket直接拿了報文體,本身socket拿到的數據是一段完整的報文,裡面有包含協議與請求方式在內的所有傳輸層的數據,弊端是不能直接調用。你要用php做的話用$_POST走http協議吧

熱點內容
j2ee和java的區別 發布:2025-01-12 03:42:44 瀏覽:581
android6小米 發布:2025-01-12 03:38:35 瀏覽:85
redis與資料庫 發布:2025-01-12 03:20:21 瀏覽:211
怎麼升級安卓100 發布:2025-01-12 03:19:37 瀏覽:516
c語言倒數 發布:2025-01-12 03:14:37 瀏覽:929
如何免費激活行動電話卡安卓 發布:2025-01-12 03:10:27 瀏覽:89
2020凱越精英配置什麼樣 發布:2025-01-12 03:08:02 瀏覽:685
奧特曼空想特攝要怎麼樣的配置 發布:2025-01-12 03:08:01 瀏覽:998
空氣能的壓縮機 發布:2025-01-12 03:05:55 瀏覽:480
java字元串圖片 發布:2025-01-12 03:04:31 瀏覽:341