Maison >développement back-end >tutoriel php >Méthode PHP pour implémenter la communication UDP basée sur socket

Méthode PHP pour implémenter la communication UDP basée sur socket

墨辰丷
墨辰丷original
2018-06-09 09:57:066622parcourir

Cet article présente principalement comment PHP implémente la communication UDP basée sur les sockets. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

L'exemple de cet article décrit la méthode de communication UDP de la communication Socket de PHP, comme suit :

1 Créez un serveur UDP simple

//服务器信息 
$server = 'udp://127.0.0.1:9998'; 
//消息结束符号 
$msg_eof = "\n"; 
$socket = stream_socket_server($server, $errno, $errstr, STREAM_SERVER_BIND); 
if (!$socket) { 
  die("$errstr ($errno)"); 
} 
do { 
  //接收客户端发来的信息 
  $inMsg = stream_socket_recvfrom($socket, 1024, 0, $peer); 
  //服务端打印出相关信息 
  echo "Client : $peer\n"; 
  echo "Receive : {$inMsg}"; 
  //给客户端发送信息 
  $outMsg = substr($inMsg, 0, (strrpos($inMsg, $msg_eof))).' -- '.date("D M j H:i:s Y\r\n"); 
  stream_socket_sendto($socket, $outMsg, 0, $peer); 
} while ($inMsg !== false);

2. Fin

function udpGet($sendMsg = '', $ip = '127.0.0.1', $port = '9998'){ 
  $handle = stream_socket_client("udp://{$ip}:{$port}", $errno, $errstr); 
  if( !$handle ){ 
    die("ERROR: {$errno} - {$errstr}\n"); 
  } 
  fwrite($handle, $sendMsg."\n"); 
  $result = fread($handle, 1024); 
  fclose($handle); 
  return $result; 
} 
$result = udpGet('Hello World'); 
echo $result;

Résumé : Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

Trois utilisations courantes de php pour simuler des demandes de publication

suppression php de tableaux, conversion, regroupement, tri

Instructions SQL à exécuter pour réaliser la génération de tableaux en php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn