<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 코드 의이 부분은 기사의 내용과 관련이 없습니다.,예를 들어</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"이 기사를 읽을 수 있습니다PHP튜토리얼 기사。"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/*
* 제목:stream_socket_recvfrom기능의 자세한 사용 방법과 단계는 무엇입니까??
*
* 존재하다PHP가운데,stream_socket_recvfrom네트워크 소켓에서 데이터를 수신하는 기능입니다.,일반적으로 사용됩니다UDP또는 연결이없는 소켓 통신。
* 它可以从指定的소켓资源가운데读取数据,그리고 보내기 끝의 주소 정보를 반환 할 수 있습니다.,네트워크 데이터 상호 작용을 실현하는 데 편리합니다。
*
* 하나、함수 정의
* int stream_socket_recvfrom(resource $socket, int $length, int $flags = 0, string &$address = null)
*
* 매개 변수 설명:
* - $socket:要从가운데读取数据的소켓资源。
* - $length:최대 바이트 수를 읽습니다。
* - $flags:선택 과목,읽기 동작을 제어하는 깃발,기본0。
* - &$address:선택 과목,참조 변수를 전달합니다,전송 끝의 주소 정보를받는 데 사용됩니다(IP그리고 포트)。
*
* 반환 값:
* 실제 바이트 수를 반환합니다,실패에 대한 반환false。
*
* 둘、단계와 예제를 사용하십시오
*
* 1. 만들다UDP소켓(또한 사용할 수 있습니다TCP그러나 보통recvfrom연결없는 프로토콜 용)
* 2. 绑定本地地址그리고 포트,데이터를 듣습니다
* 3. 부르다stream_socket_recvfrom데이터를 수신합니다
* 4. 수신 된 데이터를 처리하고 주소를 보내십시오
*
* 샘플 코드:
*/</span>
</span><span><span class="hljs-variable">$socket</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_socket_server</span></span><span>(</span><span><span class="hljs-string">"udp://0.0.0.0:9999"</span></span><span>, </span><span><span class="hljs-variable">$errno</span></span><span>, </span><span><span class="hljs-variable">$errstr</span></span><span>, STREAM_SERVER_BIND);
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$socket</span></span><span>) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"无法만들다UDP소켓:<span class="hljs-subst">$errstr</span></span></span><span> (</span><span><span class="hljs-subst">$errno</span></span><span>)");
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"UDP서버가 시작되었습니다,감시 장치9999포트...\n"</span></span><span>;
</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-literal">true</span></span><span>) {
</span><span><span class="hljs-variable">$buf</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_socket_recvfrom</span></span><span>(</span><span><span class="hljs-variable">$socket</span></span><span>, </span><span><span class="hljs-number">1024</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$peer</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$buf</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"데이터를 수신합니다失败\n"</span></span><span>;
</span><span><span class="hljs-keyword">break</span></span><span>;
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"수령 <span class="hljs-subst">$peer</span></span></span><span> 데이터의 데이터: </span><span><span class="hljs-subst">$buf</span></span><span>\n";
</span><span><span class="hljs-comment">// 필요에 따라 고객에게 응답 할 수 있습니다</span></span><span>
</span><span><span class="hljs-variable">$response</span></span><span> = </span><span><span class="hljs-string">"수신 된 데이터:"</span></span><span> . </span><span><span class="hljs-variable">$buf</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">stream_socket_sendto</span></span><span>(</span><span><span class="hljs-variable">$socket</span></span><span>, </span><span><span class="hljs-variable">$response</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$peer</span></span><span>);
}
<span class="hljs-comment">/*
* 삼、사용에 대한 메모
* - stream_socket_recvfrom연결없는 프로토콜에 적합합니다UDP,TCP연결은 다목적입니다stream_socket_recv。
* - 반품을 처리해야합니다false상황,프로그램 예외를 피하십시오。
* - $address매개 변수는 참조별로 전달됩니다,발신자 정보를 쉽게 얻을 수 있습니다。
* - 들어올 때$length너무 큽니다,성능에 영향을 줄 수 있습니다,실제 데이터 크기에 따라 합리적으로 설정하는 것이 좋습니다.。
*
* 요약:
* stream_socket_recvfrom예PHP가운데处理UDP패킷 수신의 일반적인 기능,유연하고 전송 정보를 얻을 수 있습니다,
* 간단한 구현에 적합합니다UDP서버 또는 네트워크 통신 기능。
*/</span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>