Позвольте мне объяснить проблему: я создаю систему, которая использует датчики, способные читать некоторые данные, тогда каждый датчик должен будет отправлять эти данные на сервер, который будет распечатать каждое сообщение, полученное в новой строке на странице.class Sensor extends Thread implements ISensor
{
....
public function readValue(){
$this->value = rand( -15 , 40 );
$this->timestamp = date('Y-m-d H:i:s');
}
public function run(){
$number = 0;
$this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Couldn't create socket");
$this->connectionResult = socket_connect($this->socket, $this->ip, (int)$this->port) or die("Couldn't connect to server");
while($number requestNumber){
$number = $number + 1;
$this->readValue();
$this->sendData();
sleep($this->frequency);
}
socket_close($this->socket);
}
public function sendData(){
$input = $this->toString();
socket_write($this->socket, $input, strlen($input)) or die ("Impossible send message");
}
< /code>
server.php
set_time_limit (300);
$address = '127.0.0.1';
$port = 19000;
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($sock, $address, $port) or die('Could not bind to address');
socket_listen($sock);
while (true) {
$client = socket_accept($sock);
while (0 != socket_recv($client, $message, 1024, 0))
{
echo $message . "
";
}
socket_close($client);
}
socket_close($sock);
< /code>
Ожидаемый результат заключался в том, что клиенты могут подключаться к серверу и отправлять сообщения (это хорошо работает), в то время как сервер просто распечатана новая строка для каждого полученного сообщения. В разделе) < /p>
< /p>
Первый датчик продолжает отправлять все сообщения, и сервер, которые их корректируют. Датчик, в то время как первый все еще работал, а затем печатайте сообщения, как это должно. Если я удаляю while цикл сервера, просто распечатайте одно отдельное сообщение для каждого датчика.
Подробнее здесь: https://stackoverflow.com/questions/558 ... re-clients
Проблема при попытке печатать сообщения, полученные от большего количества клиентов ⇐ Php
Кемеровские программисты php общаются здесь
1756093284
Anonymous
Позвольте мне объяснить проблему: я создаю систему, которая использует датчики, способные читать некоторые данные, тогда каждый датчик должен будет отправлять эти данные на сервер, который будет распечатать каждое сообщение, полученное в новой строке на странице.class Sensor extends Thread implements ISensor
{
....
public function readValue(){
$this->value = rand( -15 , 40 );
$this->timestamp = date('Y-m-d H:i:s');
}
public function run(){
$number = 0;
$this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Couldn't create socket");
$this->connectionResult = socket_connect($this->socket, $this->ip, (int)$this->port) or die("Couldn't connect to server");
while($number requestNumber){
$number = $number + 1;
$this->readValue();
$this->sendData();
sleep($this->frequency);
}
socket_close($this->socket);
}
public function sendData(){
$input = $this->toString();
socket_write($this->socket, $input, strlen($input)) or die ("Impossible send message");
}
< /code>
server.php
set_time_limit (300);
$address = '127.0.0.1';
$port = 19000;
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($sock, $address, $port) or die('Could not bind to address');
socket_listen($sock);
while (true) {
$client = socket_accept($sock);
while (0 != socket_recv($client, $message, 1024, 0))
{
echo $message . "
";
}
socket_close($client);
}
socket_close($sock);
< /code>
Ожидаемый результат заключался в том, что клиенты могут подключаться к серверу и отправлять сообщения (это хорошо работает), в то время как сервер просто распечатана новая строка для каждого полученного сообщения. В разделе) < /p>
< /p>
Первый датчик продолжает отправлять все сообщения, и сервер, которые их корректируют. Датчик, в то время как первый все еще работал, а затем печатайте сообщения, как это должно. Если я удаляю while цикл сервера, просто распечатайте одно отдельное сообщение для каждого датчика.
Подробнее здесь: [url]https://stackoverflow.com/questions/55880896/problem-when-trying-to-print-messages-received-from-more-clients[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия