【问题标题】:How to write socket codes via php如何通过php编写socket代码
【发布时间】:2015-03-23 20:51:27
【问题描述】:

我用 PHP 编写了以下代码

<?php
$mysocket = socket_create(AF_INET, SOCK_STREAM , 0);
socket_bind($mysocket, '127.0.0.1',1024);
socket_listen($mysocket) or die("unable to listen!");
socket_connect($mysocket , '127.0.0.1' , 1024);?>

然后出现一个错误说“

警告:socket_connect():无法连接 [102]:第 5 行 /Applications/XAMPP/xamppfiles/htdocs/SOCKTEST.php 中的套接字不支持操作"

问题出在哪里?

【问题讨论】:

  • 通常该错误是因为某些东西已经绑定到该地址。尝试使用更高的端口号,例如 30000,因为较低的端口号可能已经绑定。
  • 不工作!,但请记住,我没有在 XAMPP 上安装 WebSocket 认为这就是错误出现的原因?
  • 如果 PHP 版本正确,您应该不必安装任何东西。
  • 那么为什么会出现错误? ://
  • 好问题。如果不了解您的服务器配置的更多信息或无法查看错误日志,将很难猜测。

标签: php sockets xampp localhost


【解决方案1】:

我不知道您的代码的目标。但是这里有一个很棒的 PHP 套接字编程教程。

https://www.christophh.net/2012/07/24/php-socket-programming/

我已经测试了您的代码。如果您将套接字绑定到和地址,则会出现错误

$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($sock, '127.0.0.1');
socket_connect($sock, '127.0.0.1', 1337);
socket_close($sock);

http://php.net/manual/de/function.socket-bind.php

来自 PHP 文档的示例。如果您使用不同的实例来测试您可以通过网络连接到另一个实例或计算机的问题,也许会更好。为此,您可以使用 vagrant 例如。

【讨论】:

    【解决方案2】:

    服务器监听并接受,客户端连接。同一个套接字端点不能既是服务器(监听)又是客户端(连接)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      • 2016-11-24
      • 1970-01-01
      • 1970-01-01
      • 2011-05-03
      • 1970-01-01
      • 2017-12-26
      相关资源
      最近更新 更多