Skocz do zawartości

Dlaczego Moj Port Jest Zajety? Problem Z Socket_bind


wiktor1972

Rekomendowane odpowiedzi

Zaczynam przygode z apachem na fedora core 2. Pisze tutaj bo licze na konkretne wskazowki

co nalezy skonfigurowac zeby dzialalo...

 

Mam klopot z napisaniem prostej (wydawoloby sie) funkcji do przechwytu danych

z portu serwera i zapisaniem jej w pliku txt. Poczatek skryptu wyglada tak:

 

// Set the ip and port we will listen on 
$host = '127.0.0.1'; 
$port = 20000; 

set_time_limit(0);

// create low level socket
if(!$socket=socket_create(AF_INET,SOCK_STREAM,0)){
    trigger_error('Error creating new socket',E_USER_ERROR);
}

# reuse socket tweak
  if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
    echo socket_strerror(socket_last_error($socket));
    exit;
  }

// tie up socket to TCP port
if(!socket_bind($socket,$host,$port)){
    trigger_error('Error binding socket to TCP host:'.$host.', port:'.$port.'',E_USER_ERROR);
}

// begin listening connections
if(!socket_listen($socket)){
    trigger_error('Error listening socket connections',E_USER_ERROR);
}

// create communication socket
if(!$comSocket=socket_accept($socket)){
    trigger_error('Error creating communication socket',E_USER_ERROR);
}

// read socket input
$socketInput=socket_read($comSocket,1024);

//write data to file
....

// close sockets
socket_close($comSocket);

socket_close($socket);

Tymczasem od razu pojawia sie blad

 

PHP Warning:  set_time_limit(): Cannot set time limit 
PHP Warning:  socket_bind() unable to bind address [98]: Address already in use 
Could not bind to address

 

Problem pojawia sie bez wzgledu na numer portu. Nawet jesli port nie jest zadeklarowany

do nasluchu w httpd.conf. Po prostu od razu okazuje sie 'zajety'.

 

Moje strzaly to dodanie tego portu do iptables. Ale zanim zaczne cos modyfikowac to

chcialbym uslyszec porady ekspertow.

 

Prosze o podpowiedz gdzie moze byc przyczyna problemu. Ewentualnie gdzie jest blad / braki w kodzie.

 

Wiktor

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...