2013-07-31 2 views
-1

동일한 포트로 소켓을 바인딩하려고하는데 오류가 발생합니다.
PHP 서버 소켓 프로그래밍에서 동일한 포트에 대해 바인드 할 수 없습니다.

socket_bind() : 일반적으로 허용되는 각 소켓 주소 (프로토콜/네트워크 주소/포트)는 하나만 사용할 : [0] 주소를 바인딩 할 수 없습니다. C에서 : \ 라인 79 에 내 \의 server.php 소켓에 바인딩 할 수 없습니다 \ 여기

79 번째 라인 XAMPP \ htdocs에 :

$result = socket_bind($socket, $host, $port) or die("Could not bind to socket\n"); 

어떻게이 문제를 해결하려면?

+0

포트에 이미 바인딩 된 다른 것이 없습니까? – Anigel

+0

예, 포트를 사용하여 프로그램을 실행했습니다. 그 프로그램을 중단 시켰어. 그런 다음 프로그램을 다시 실행하십시오. 이번에는 오류가 발생하여 바인딩 할 수 없습니다. – RJ501

+0

첫 번째 프로그램이 제대로 종료되지 않았고 포트가 계속 바인딩 된 것 같습니다. – Anigel

답변

0

내가

가 다른 포트를 사용하거나 바인딩하려고하는 포트에 바인딩 된 응용 프로그램을 죽일 동일한 포트로 소켓을 결합하려합니다. 일반적으로 한 번에 하나의 응용 프로그램 만 포트에 바인딩 할 수 있습니다.

netstat -O은 Windows에서 cmd를 통해 사용중인 포트를 찾는 데 사용됩니다.

+0

예, 첫 번째 프로그램이 완전히 종료되지 않았습니다. 나는 프로그램이 완전히 종료되지 않은 실행을 중단하면 잠시 동안 소켓을 읽는다. 클라이언트로부터 들어오는 데이터가 없다면 루프를 닫는 방법? – RJ501

0

당신은 그렇게 할 수 없습니다. 터널 프로토콜/네트워크 주소/포트에 소켓 하나만 바인드 할 수 있습니다. 예를 들어, 포트 4242에 두 개의 TCP 소켓을 바인드 할 수 없습니다.

+0

예, 첫 번째 프로그램이 완전히 종료되지 않았습니다. 나는 프로그램이 완전히 종료되지 않은 실행을 중단하면 잠시 동안 소켓을 읽는다. 클라이언트로부터 들어오는 데이터가 없다면 루프를 닫는 방법? – RJ501

관련 문제