ホームページ バックエンド開発 PHPチュートリアル PHP が fsockopen を使用すると、fwrite の rn ターミネータと n ターミネータによって、smtp.qq.com の応答に関連した問題が発生します。

PHP が fsockopen を使用すると、fwrite の rn ターミネータと n ターミネータによって、smtp.qq.com の応答に関連した問題が発生します。

Jun 13, 2016 am 11:57 AM
com fwrite quot stream

php が fsockopen を使用する場合、fwrite の rn および n ターミネータにより、smtp.qq.com 応答で問題が発生します

<?php$t= time();$sk = fsockopen(&#39;tcp://smtp.qq.com&#39;,25,		$errno,		$errstr,		5);		echo "sockect ok:".(time()-$t)."\n";	if ( ! is_resource($sk) )	exit(&#39;connect error:&#39;. $errno." ".$errstr);//设置成阻塞模式 stream_set_blocking  ($sk,1);//获取初次链接信息var_dump( fgets($sk,512) );//设置读超时stream_set_timeout( $sk, 3 );var_dump( stream_get_meta_data( $sk ) );fwrite($sk,"EHLO qidizi.com\n");//这个会导致超时,个人判断应该是qq在等待一行的输入结束符,但是\n却不是,应该是\r\n才是,就会卡在这里不输出提示,这个问题,在以前的版本,及当前测试时,的163.com上面都没有发现有这个问题//fwrite($sk,"EHLO qidizi.com\r\n");//正确的一行结束符\r\n,立刻会得到响应var_dump( fgets($sk,512).&#39;:&#39;.(time()-$t) );//上面的不会超时echo "4:".(time()-$t)."\n<br />";var_dump( stream_get_meta_data( $sk ) );fclose($sk);
ログイン後にコピー

テスト コード



最近の変更で qq サーバーが変更された可能性があります。以前は n を行末として使用できた、つまり fwrite($sk, "kkkn" ) して応答を取得できたことを思い出してください。 、fgets はすぐに成功します。163 をテストしたところ、n には問題がありませんでした。最近、qq の n に問題があることがわかりました。結果として、fgets はバッファーにコンテンツがないため、例外が発生します。しかし、qq は rn に変更すると正常になりました。


したがって、smtp.qq.com と smtp.exmail.qq.com の両方でこの問題が発生します。

SSL の問題ではないかと言う人もいましたが、そうではありませんでした。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

紅夢ネイティブアプリケーションのランダムな詩 紅夢ネイティブアプリケーションのランダムな詩 Feb 19, 2024 pm 01:36 PM

オープン ソースの詳細については、次のサイトを参照してください。 51CTO Honmeng 開発者コミュニティ https://ost.51cto.com 実行環境 DAYU200:4.0.10.16SDK: 4.0.10.15IDE: 4.0.600 1. アプリケーションを作成するには、[ファイル] をクリックします。 >新しいファイル ->プロジェクトの作成。テンプレートを選択します: [OpenHarmony] EmptyAbility: プロジェクト名 shici、アプリケーション パッケージ名 com.nut.shici、およびアプリケーションの保存場所 XXX (中国語、特殊文字、スペースは含まれません) を入力します。 CompileSDK10、モデル: ステージ。デバイス

comcn と com はどう違いますか? comcn と com はどう違いますか? May 12, 2023 pm 04:08 PM

comcn と com の違い: 1. comcn と com には意味の違いがありますが、アクセス速度に違いはありません; 2. comcn は国際ドメイン名であり、次のユーザーが使用するグローバル トップレベル ドメイン名です。商業機関、cn は中国企業のドメイン名、国内商業機関、国内ドメイン名、企業のみが登録可能; 3. 検索の優先順位は、cn が最初に .cn を検索することです。.cn サーバーが見つかった後、.cnサーバーは .com を検索します; 4. cn は cnnic China Internet Center Management によって提供されており、com の管理組織は海外にあります。

IntelliJ IDEA で Java Stream 操作をデバッグする方法 IntelliJ IDEA で Java Stream 操作をデバッグする方法 May 09, 2023 am 11:25 AM

ストリーム操作は Java8 のハイライトです。 java.util.stream は非常に強力ですが、実際の作業ではほとんど使用していない開発者がまだ多くいます。最も不満の理由の 1 つは、デバッグが難しいということです。実際、最初の頃はそうでした。 as stream は DEBUG では使用できません 1 行のコードだと、実際には次のステップになると多くの操作が一度に渡されるため、どの行に問題があるのか​​判断するのが困難です。プラグイン: JavaStreamDebugger 使用している IDEA バージョンが比較的新しい場合、このプラグインはすでに含まれているため、インストールする必要はありません。まだインストールされていない場合は、手動でインストールしてから以下に進みます。

Java8でストリームから最大値を取得する方法 Java8でストリームから最大値を取得する方法 May 14, 2023 pm 03:43 PM

java8 のストリームは maxpublicstaticvoidmain(String[]args){Listlist=Arrays.asList(1,2,3,4,5,6);Integermax=list.stream().max((a,b)->{if ( a>b){return1;}elsereturn-1;}).get();System.out.println(max);}注: ここでは、サイズは正と負の数値および 0 の値によって決定されます。直接書く代わりに if(a>b){returna;}elseretur

PHPでファイル操作にfopen、fwrite、fcloseを使用するにはどうすればよいですか? PHPでファイル操作にfopen、fwrite、fcloseを使用するにはどうすればよいですか? Jun 01, 2023 am 08:46 AM

PHP 開発では、ファイル操作が非常に一般的です。通常の状況では、ファイルの読み取り、書き込み、削除などの操作を実行する必要があります。このうち、fopen 関数と fread 関数はファイルの読み取りに使用でき、fopen 関数、fwrite 関数、fclose 関数はファイルの書き込みに使用できます。この記事では、PHP が fopen、fwrite、fclose を使用してファイル操作を実行する方法を紹介します。 1. fopen 関数 fopen 関数はファイルを開くために使用され、その構文は次のとおりです。

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Java Stream API がコードをどのように改善するか Java Stream API がコードをどのように改善するか May 14, 2023 pm 06:22 PM

はじめに JavaStream は、開発者がデータ ストリームを迅速かつ効率的に処理および変換できる強力なデータ処理ツールです。ストリーム操作を使用するとコードが大幅に簡素化され、読みやすく保守しやすくなり、開発効率が向上します。 filter(): 指定されたPredicateに基づいて条件を満たす要素を保持します。 map(): 指定された Function に従って各要素をマップし、新しい Stream を生成します。 flatMap(): 各要素を Stream にマップし、これらの Stream を Stream に連結します。 unique(): 重複排除されたストリームを返します。 sorted(): Str の場合

Microsoft は Microsoft Stream (SharePoint 上) にトリミングされたビデオを導入していますか?新しいロードマップの更新内容は次のとおりです Microsoft は Microsoft Stream (SharePoint 上) にトリミングされたビデオを導入していますか?新しいロードマップの更新内容は次のとおりです Nov 24, 2023 pm 11:13 PM

Microsoft 365 Roadmap Web サイトの更新されたエントリ (機能 ID: 186956) で、レドモンドに本拠を置くハイテク大手企業は、この機能によりユーザーにビデオの先頭、末尾、およびクリップをトリミングする編集権限が与えられると述べました。 「ビデオをトリミングする場合、Stream は元のビデオ ファイル自体を変更しません。代わりに、トリミングされた部分を視聴者から隠すだけです。」とアップデートには記載されています。今後数か月以内に展開が完了したら、StreamWeb アプリでビデオを起動し、編集ボタンをクリックしてこの機能を試すことができます。ロードマップの更新では、展開が「2023 年 3 月」に開始されると記載されています。ただし、ロードマップのエントリが 2023 年 11 月 21 日に追加されたことを考慮すると、

See all articles