2012-09-18 48 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