Почему socket_connect () возвращает ошибку № 2: «Нет такого файла или каталога»? - PullRequest
2 голосов
/ 06 ноября 2010

Я написал простой сервер сокетов на C ++, который я собираюсь использовать для связи между несколькими другими демонами.Сам сервер в порядке;он прослушивает TCP-соединения через порт 3000. A netstat показывает следующее:

Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)
tcp4       0      0  *.30000                *.*                    LISTEN

Однако в PHP, если я использую следующие несколько простых строк кода:

$sock = socket_create(AF_UNIX, SOCK_STREAM, 0);
socket_connect($sock, '127.0.0.1', 30000);

Я получаю следующее:

Warning: socket_connect() [function.socket-connect]: unable to connect [2]:
No such file or directory in /foo/bar/baz.php on line 8

Правильный ли это протокол (0) для сокетов IPC?Это, наверное, что-то глупое, что я упустил из виду - любые мысли будут оценены.

1 Ответ

2 голосов
/ 06 ноября 2010

Замените AF_UNIX на AF_INET (или PF_INET - см. Семейства протоколов и адресов ), чтобы создать сокет TCP / IP (я предполагаю, что это то, что вы хотите, так как вы пытаетесьподключиться к IP-адресу).Как написано сейчас, вызов socket_create создает сокет Unix , который сопоставляется с объектом в файловой системе, отсюда и сообщение об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...