@fastboot

Сокеты, как понять что отправить read или write в сокет?

Сервер в цикле прослушивает сокет, 5 соед. максимум
while (true)
{
	echo 'Accept socket ... ';
	if (($msgsock = socket_accept($sock)) < 0)
	{
		throw new Exception('socket_accept() failed: '.socket_strerror(socket_last_error())."\n");
	}
	else
	{
		echo "OK\n";
	}
	
	echo "Say to client ($message) ... ";
	socket_write($msgsock, $message, strlen($message));
	echo "OK\n";
	
	while ( $buf = socket_read($msgsock, 1024) )
	{
		#echo 'Client said: ';
		if (false === $buf )
		{
			throw new Exception('socket_read() failed: '.socket_strerror(socket_last_error())."\n");
		}
		else
		{
			$message = $buf;
			echo $buf;
		}
	}
}


Клиент на машине
function socket_echo ( $MESSAGE )
{
	#GLOBAL $SOCKET;
	$address = '127.0.0.1'; //Адрес работы сервера
	$port = 12345; //Порт работы сервера (лучше какой-нибудь редкоиспользуемый)
	$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
	$result = socket_connect($socket, $address, $port);
	socket_write($socket, $MESSAGE, strlen($MESSAGE));
	socket_shutdown($socket, STREAM_SHUT_WR); 
}


613144165d35d609475364.png

ВОПРОС:
1) хочу понять или как правильно прослушивать соединения — он подключился что бы слушать ответ сервера? или он подключился и ждёт когда я ему отвечу?

2) как правильно закрывать соединение с сокетом? (на стороне клиента)
  • Вопрос задан
  • 197 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы