2012-09-18 98 views
1

我想在PHP中将指定的端口绑定到套接字的CLIENT端。我可以这样做吗?这个怎么做? 使用socket_bind()?但我不知道应该为地址设置什么如何在PHP中指定socket客户端的端口?

我已经使用了关于此问题的解决方案,但没有找到示例/解决方案。

感谢您的帮助。

+0

@lanzz他不想听。他说'客户端套接字'。因此0.0.0.0也不适用。 – EJP

回答

1

看看这里:http://php.net/manual/en/function.socket-bind.php

socket_bind (resource $socket , string $address [, int $port = 0 ]) 

因此,像:

socket_bind($socket, 'localhost', 5555); 

当然,我不知道主机的IP地址是什么,它可能不会是localhost。

+0

我已阅读php手册。 socket_bind通常用于SERVER端。 对于CLIENT方面,是客户端的IP地址吗?我只想确定地址是什么。 – Timespace7

+0

它可以(也应该)被SERVER和CLIENT一方使用。你如何创建套接字,你称之为“服务器”是什么。你想如何与该套接字进行通信。详细说明如果你需要更好的答案。 – ddinchev

+0

我是套接字编程的初学者。也许我对socket的一些概念还不清楚。如图所示http://pic.pimg.tw/kezeodsnx/4a83b89243c39.png 服务器端绑定到一个IP和端口,以便它可以分别向客户端发送数据和从客户端接收数据。服务器的ip可能是固定的,因为它的所有客户端只需连接一台服务器(在正常情况下)。但对于客户端来说,如果我想在客户端指定一个端口,我想我应该使用socket_bind(),它需要2个参数ip和port。这个socket_bind()中的ip的地址是什么?客户端的IP地址是什么? – Timespace7

0

如果你自己创建流与stream_context_create

你将需要使用你能做到这一点bindto

用于指定的IP地址(IPv4或IPv6)和/或端口PHP将用于访问网络的数量。语法是ip:port。将IP或端口设置为0将让系统选择IP和/或端口。

所以:

$ctx = stream_context_create(array('socket'=> array('bindto' => "0:1234"))); 

那么您认为合适的使用环境。

+0

我可以使用此套接字创建的套接字函数,即socket_create()吗? – Timespace7

+0

不是socket_create,但函数,如'stream_socket_ *'或'fopen' – Martin