Heim Backend-Entwicklung PHP-Tutorial 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中的\r\n及\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);
Nach dem Login kopieren

测试代码



可能qq的服务器在最近的更改中出现了变动,记得以前是可以使用\n来做为一行的结束符的,也就是一fwrite($sk,"kkk\n")就得到响应,fgets就能立刻成功,测试了一下163,\n是没有问题,最近发现qq的\n却出现问题,导致没有响应,fgets因为缓冲区没有内容导致异常,直到读超时.但是qq的换成了\r\n后就正常了.


所以smtp.qq.com,及smtp.exmail.qq.com都存在这个问题.

我开始以为是某些人说的变成了ssl的问题.却不是.现在的25端口还是可以正常使用的.

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hongmeng native Anwendung zufälliger Poesie Hongmeng native Anwendung zufälliger Poesie Feb 19, 2024 pm 01:36 PM

Um mehr über Open Source zu erfahren, besuchen Sie bitte: 51CTO Hongmeng Developer Community https://ost.51cto.com Laufumgebung DAYU200:4.0.10.16SDK: 4.0.10.15IDE: 4.0.600 1. Um eine Anwendung zu erstellen, klicken Sie auf Datei- >newFile->CreateProgect. Vorlage auswählen: [OpenHarmony] EmptyAbility: Geben Sie den Projektnamen, shici, den Namen des Anwendungspakets com.nut.shici und den Speicherort der Anwendung XXX ein (kein Chinesisch, Sonderzeichen oder Leerzeichen). CompileSDK10, Modell: Stage. Gerät

Was ist der Unterschied zwischen comcn und com Was ist der Unterschied zwischen comcn und com May 12, 2023 pm 04:08 PM

Der Unterschied zwischen comcn und com: 1. Es gibt Unterschiede in der Bedeutung zwischen comcn und com, aber keinen Unterschied in der Zugriffsgeschwindigkeit. 2. comcn ist ein internationaler Domainname und ein globaler Top-Level-Domainname zur Verwendung durch kommerzielle Institutionen , während cn ein chinesischer Unternehmensdomänenname ist, können sich nur inländische kommerzielle Institutionen registrieren. 3. Die Suchpriorität besteht darin, dass cn zuerst nach dem .cn-Server sucht Suchen Sie dann nach .com. 4. cn wird von cnnic China Internet Center Management bereitgestellt, die Verwaltungsorganisation von com befindet sich im Ausland.

So debuggen Sie Java Stream-Vorgänge in IntelliJ IDEA So debuggen Sie Java Stream-Vorgänge in IntelliJ IDEA May 09, 2023 am 11:25 AM

Der Stream-Betrieb ist ein Highlight von Java8! Obwohl java.util.stream sehr leistungsfähig ist, gibt es immer noch viele Entwickler, die es selten in der tatsächlichen Arbeit verwenden. Einer der am häufigsten beklagten Gründe ist, dass es zu Beginn schwierig zu debuggen ist, da Streaming-Vorgänge wie z als Stream kann in DEBUG nicht verwendet werden. Wenn es sich um eine Codezeile handelt, werden im nächsten Schritt tatsächlich viele Vorgänge gleichzeitig übergeben, sodass wir schwer beurteilen können, welche Zeile darin das Problem darstellt. Plug-in: JavaStreamDebugger Wenn die von Ihnen verwendete IDEA-Version relativ neu ist, ist dieses Plug-in bereits enthalten und muss nicht installiert werden. Wenn es noch nicht installiert ist, installieren Sie es manuell und fahren Sie dann unten fort.

So erhalten Sie den maximalen Wert aus dem Stream in Java8 So erhalten Sie den maximalen Wert aus dem Stream in Java8 May 14, 2023 pm 03:43 PM

Der Stream von Java8 benötigt 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);}Hinweis: Die Größe wird hier durch positive und negative Zahlen und 0-Werte bestimmt. Anstatt es direkt zu schreiben if(a>b){returna;}elseretur

Wie verwende ich fopen, fwrite und fclose in PHP für Dateioperationen? Wie verwende ich fopen, fwrite und fclose in PHP für Dateioperationen? Jun 01, 2023 am 08:46 AM

In der PHP-Entwicklung sind Dateioperationen sehr verbreitet. Unter normalen Umständen müssen wir Dateien lesen, schreiben, löschen und andere Vorgänge ausführen. Unter diesen können die Funktionen fopen und fread zum Lesen der Datei sowie die Funktionen fopen, fwrite und fclose zum Schreiben der Datei verwendet werden. In diesem Artikel wird vorgestellt, wie PHP fopen, fwrite und fclose verwendet, um Dateioperationen auszuführen. 1. fopen-Funktion Die fopen-Funktion wird zum Öffnen von Dateien verwendet. Ihre Syntax lautet wie folgt: r

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

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

Wie die Java Stream API Ihren Code verbessert Wie die Java Stream API Ihren Code verbessert May 14, 2023 pm 06:22 PM

Vorwort JavaStream ist ein leistungsstarkes Datenverarbeitungstool, das Entwicklern dabei helfen kann, Datenströme schnell und effizient zu verarbeiten und umzuwandeln. Die Verwendung von Stream-Operationen kann den Code erheblich vereinfachen, ihn lesbarer und wartbarer machen und dadurch die Entwicklungseffizienz verbessern. filter(): Behält Elemente bei, die die Bedingungen basierend auf dem angegebenen Prädikat erfüllen. map(): Ordnet jedes Element gemäß der angegebenen Funktion zu und generiert einen neuen Stream. flatMap(): Ordnet jedes Element einem Stream zu und verkettet diese Streams dann zu einem Stream. unique(): Gibt einen deduplizierten Stream zurück. sorted(): für Stre

Führt Microsoft zugeschnittene Videos in Microsoft Stream (auf SharePoint) ein? Das sagt das neue Roadmap-Update Führt Microsoft zugeschnittene Videos in Microsoft Stream (auf SharePoint) ein? Das sagt das neue Roadmap-Update Nov 24, 2023 pm 11:13 PM

In einem aktualisierten Eintrag auf der Microsoft 365 Roadmap-Website (Feature-ID: 186956) sagte der in Redmond ansässige Technologieriese, dass die Funktion Benutzern Bearbeitungsrechte zum Zuschneiden des Anfangs, des Endes und aller Clips in einem Video geben wird. „Wenn Sie ein Video zuschneiden, ändert Stream nicht die ursprüngliche Videodatei selbst. Stattdessen verbirgt es einfach den zugeschnittenen Teil vor dem Betrachter“, heißt es in der Aktualisierung. Anschließend können Sie diese Funktion ausprobieren, indem Sie ein Video in der StreamWeb-App starten und auf die Schaltfläche „Bearbeiten“ klicken, sobald die Einführung in den nächsten Monaten abgeschlossen ist. Im Roadmap-Update heißt es, dass der Rollout im „März 2023“ beginnen wird. Allerdings wurde der Roadmap-Eintrag am 21. November 2023 hinzugefügt

See all articles