Я связываю, чтобы написать несколько сообщений (каждое сообщение, созданное динамически) на устройство через один сокет, созданный с помощью PHP. Первое сообщение всегда проходит; но последующие сообщения не проходят. Чтобы помочь мне отладить, пожалуйста, дайте мне знать, если есть проблема с этим примером:
$socket= socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($socket, $ip, $port); socket_write($socket, "message 1\r"); socket_write($socket, "message 2\r");
Вы пытались добавить возврат каретки в socket_write($socket, "message 1\r\n");
до конца сообщения? Во многих случаях, когда вы работаете с буферами и потоками, это похоже на трюк.
Что-то еще стоит сделать:
//all suggestions rolled into one (including Chris' chr(0) - thanks for that one) socket_write($socket, 'message 1'."\r\n".chr(0)); usleep(5); socket_write($socket, 'Foobar'."\r\n".chr(0));
просто давая этому немного дополнительного времени, чтобы очистить буфер, вы можете делать чудеса.
РЕДАКТИРОВАТЬ
У меня была еще одна мозговая волна: вы тоже пытались использовать параметр дополнительной длины?
socket_write($socket, 'message 1'."\r\n".chr(0),strlen('message 1'."\r\n".chr(0)));