라이브러리

[PHP] fsockopen - 인터넷 또는 Unix 도메인 소켓 연결 열기




PHP의 fsockopen() 함수

PHP의 `fsockopen()` 함수는 TCP/IP 소켓을 열어주는 함수입니다. 이 함수를 사용하면 PHP가 네트워크에 접속할 수 있습니다. `fsockopen()` 함수는 `socket` 함수를 사용하는 것보다 더 쉬운 방법으로 네트워크에 접속할 수 있습니다.

fsockopen() 함수의 사용법

`fsockopen()` 함수의 사용법은 다음과 같습니다.

#hostingforum.kr
php

fsockopen($host, $port, &$errno, &$errstr, $timeout)



* `$host`: 접속할 서버의 호스트 이름 또는 IP 주소입니다.
* `$port`: 접속할 서버의 포트 번호입니다.
* `&$errno`: 에러 번호를 저장할 변수입니다. 에러가 발생하면 이 변수에 에러 번호가 저장됩니다.
* `&$errstr`: 에러 메시지를 저장할 변수입니다. 에러가 발생하면 이 변수에 에러 메시지가 저장됩니다.
* `$timeout`: 접속을 시도하는 데 걸리는 시간입니다. 0을 지정하면 무한 대기합니다.

예제

다음 예제에서는 `fsockopen()` 함수를 사용하여 HTTP 요청을 보내는 방법을 보여줍니다.

#hostingforum.kr
php

$host = 'www.example.com';

$port = 80;

$timeout = 5;



$fp = fsockopen($host, $port, $errno, $errstr, $timeout);



if (!$fp) {

    echo "에러 발생: $errstr ($errno)
";

} else {

    echo "접속 성공
";



    $req = "GET / HTTP/1.1
";

    $req .= "Host: $host
";

    $req .= "Connection: Close
";

    $req .= "
";



    fwrite($fp, $req);

    while (!feof($fp)) {

        echo fgets($fp, 128);

    }

    fclose($fp);

}



이 예제에서는 `fsockopen()` 함수를 사용하여 `www.example.com` 서버에 접속합니다. 접속이 성공하면 HTTP 요청을 보내고, 서버의 응답을 읽어 출력합니다.

주의점

* `fsockopen()` 함수를 사용할 때는 서버의 호스트 이름이나 IP 주소를 정확하게 입력해야 합니다.
* `$timeout` 변수를 0으로 지정하면 무한 대기가 발생할 수 있으므로 주의해야 합니다.
* `fsockopen()` 함수를 사용할 때는 에러를 처리하는 코드를 반드시 포함해야 합니다.

이번에는, PHP의 `fsockopen()` 함수를 사용하여 FTP 서버에 접속하는 예제를 보여드리겠습니다.

#hostingforum.kr
php

$host = 'ftp.example.com';

$port = 21;

$timeout = 5;



$fp = fsockopen($host, $port, $errno, $errstr, $timeout);



if (!$fp) {

    echo "에러 발생: $errstr ($errno)
";

} else {

    echo "접속 성공
";



    $req = "USER anonymous
";

    fwrite($fp, $req);

    $res = fgets($fp, 128);

    echo $res;



    $req = "PASS anonymous
";

    fwrite($fp, $req);

    $res = fgets($fp, 128);

    echo $res;



    $req = "LIST
";

    fwrite($fp, $req);

    while (!feof($fp)) {

        echo fgets($fp, 128);

    }

    fclose($fp);

}



이 예제에서는 `fsockopen()` 함수를 사용하여 `ftp.example.com` FTP 서버에 접속합니다. 접속이 성공하면 FTP 서버에 로그인하고, 파일 목록을 읽어 출력합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 544 페이지

검색

게시물 검색