У меня есть класс обработчиков сокетов, который используется для связи с клиентом с определенным IP и портом с помощью нескольких функций сокета. В первый раз, когда я использую функцию writetoSocket () , она работает отлично. < /p>
Но когда я перезапускаю клиент (с IP и портом). И пытается использовать WriteToSocket () он возвращает меня ошибку сломанной трубы с кодом ошибки 32 . Но после некоторого успешного выполнения функции socket_write . Означает, что я получаю эту ошибку через некоторое время, когда я пишу данные о розетке. Я прочитал некоторые решения и попробовал наиболее распространенное решение, где я использую socket_shutdown и socket_close для правильного прекращения подключения сокета, когда я нахожу клиент, не отвечает. И после этого я снова звоню в StartConnection, которая дает мне новую розетку. Но все же я получаю ошибку сломанной трубы. < /P>
function startconnection(){
/* Create a socket in the AF_INET family, using SOCK_STREAM for TCP connection */
$this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($this->socket === false) {
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
echo "$errorcode : $errormsg";
return false;
}
else {
echo "Socket successfully created.";
}
/* Accept incoming connections */
$this->result = socket_connect($this->socket, $this->ipaddress, $this->port);
if($this->result === false){
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
echo "$errorcode : $errormsg";
return false;
}
else {
echo "successfully connected to $this->ipaddress, $this->port";
}
return true;
}
function writetosocket($input){
$sent = socket_write($this->socket, $input, strlen($input));
if($sent === false) {
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
echo "$errorcode : $errormsg";
return false;
}
else {
echo "Message Sent : $input";
}
return true;
}
< /code>
Помогите мне понять и решить эту проблему, чтобы функция могла обрабатывать ошибку сломанной трубы. < /p>
Подробнее здесь: https://stackoverflow.com/questions/176 ... -32-in-php
Как обрабатывать разбитую трубу [Ошибка 32] в PHP? ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1750014090
Anonymous
У меня есть класс обработчиков сокетов, который используется для связи с клиентом с определенным IP и портом с помощью нескольких функций сокета. В первый раз, когда я использую функцию writetoSocket () , она работает отлично. < /p>
Но когда я перезапускаю клиент (с IP и портом). И пытается использовать WriteToSocket () он возвращает меня [b] ошибку сломанной трубы с кодом ошибки 32 [/b]. Но после некоторого успешного выполнения функции socket_write . Означает, что я получаю эту ошибку через некоторое время, когда я пишу данные о розетке. Я прочитал некоторые решения и попробовал наиболее распространенное решение, где я использую socket_shutdown и socket_close для правильного прекращения подключения сокета, когда я нахожу клиент, не отвечает. И после этого я снова звоню в StartConnection, которая дает мне новую розетку. Но все же я получаю ошибку сломанной трубы. < /P>
function startconnection(){
/* Create a socket in the AF_INET family, using SOCK_STREAM for TCP connection */
$this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($this->socket === false) {
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
echo "$errorcode : $errormsg";
return false;
}
else {
echo "Socket successfully created.";
}
/* Accept incoming connections */
$this->result = socket_connect($this->socket, $this->ipaddress, $this->port);
if($this->result === false){
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
echo "$errorcode : $errormsg";
return false;
}
else {
echo "successfully connected to $this->ipaddress, $this->port";
}
return true;
}
function writetosocket($input){
$sent = socket_write($this->socket, $input, strlen($input));
if($sent === false) {
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
echo "$errorcode : $errormsg";
return false;
}
else {
echo "Message Sent : $input";
}
return true;
}
< /code>
Помогите мне понять и решить эту проблему, чтобы функция могла обрабатывать ошибку сломанной трубы. < /p>
Подробнее здесь: [url]https://stackoverflow.com/questions/17678146/how-to-handle-socket-broken-pipe-error-32-in-php[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия