PHP 소켓과 컬의 차이점은 무엇입니까

藏色散人
풀어 주다: 2023-03-13 14:16:01
원래의
2193명이 탐색했습니다.

PHP 소켓과 컬의 차이점: 1. 소켓은 서버와 클라이언트 간의 통신에 사용할 수 있는 데이터 구조입니다. 2. 컬은 URL 구문을 사용하여 파일과 데이터를 전송하고 FTP와 같은 많은 프로토콜을 지원합니다. , HTTP, TELNET 등

PHP 소켓과 컬의 차이점은 무엇입니까

이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

PHP 소켓과 컬의 차이점은 무엇입니까? 서버와 클라이언트 간의 PHP 세션에서 컬과 소켓의 차이점. 서버는 항상 수신 대기 상태입니다. 클라이언트가 서버에 연결되면 서버가 세션을 수신하고 있는 포트를 엽니다. 이때 서버는 클라이언트의 연결 요청을 받은 후 한 사이클을 수행하게 된다. 이제 클라이언트는 서버에 정보를 보낼 수 있고, 서버는 클라이언트에 정보를 보낼 수 있습니다.

소켓을 생성하려면 총 3개의 변수가 필요합니다:

1, 프로토콜 2, 소켓 유형

3, 공용 프로토콜 유형

다음은 이 세 가지 변수에 대한 자세한 설명입니다. 대략적인 이해(하지만 웃으시길 바랍니다)

프로토콜: 소켓을 생성할 때 선택할 수 있는 세 가지 프로토콜이 있습니다: 1. AF_INET 이것은 소켓 생성에 널리 사용되는 프로토콜이며 tcp 또는 udp 프로토콜 전송을 사용합니다. ipv4 주소

2. AF_INET6 분명히 위와 동일하지만 차이점은 ipv6 주소가 사용된다는 것입니다

3. AF_UNIX는 unix 또는 Linux 시스템에서 사용되며 거의 사용되지 않으며 둘 다 unix인 서버 및 클라이언트에서만 사용됩니다. 또는 리눅스 시스템.

소켓 유형:
1. SOCK_STREAM 이 프로토콜은 순차적이고 신뢰할 수 있는 데이터 완전한 바이트 스트림 기반 연결입니다. 가장 일반적으로 사용되는 소켓 유형입니다. 이 소켓은 전송에 TCP를 사용합니다.
2. SOCK_DGRAM 이 프로토콜은 연결이 없는 고정 길이 전송 호출입니다. 이 프로토콜은 신뢰할 수 없으며 연결에 UDP를 사용합니다.

3. SOCK_SEQPACKET 이 프로토콜은 전송을 위해 고정 길이 데이터 패킷을 보내는 안정적인 이중 회선 연결입니다. 이 패킷을 읽으려면 먼저 완전히 수락해야 합니다.

4. SOCK_RAW 이 소켓 유형은 ICMP 공용 프로토콜을 사용합니다. (ping 및 Traceroute는 이 프로토콜을 사용합니다.)
5. SOCK_RDM 이 유형은 거의 사용되지 않으며 대부분의 운영 체제에서 구현되지 않습니다. 이는 데이터 링크 계층에 제공되며 데이터 패킷의 순서를 보장하지 않습니다.

공용 프로토콜 유형:
1. ICMP(인터넷 제어 메시지 프로토콜) 인터넷 제어 메시지 프로토콜은 주로 게이트웨이와 호스트에서 네트워크 상태를 감지하고 오류 메시지를 보고하는 데 사용됩니다.
2. TCP(전송 제어 프로토콜) 전송 제어 프로토콜은 가장 널리 사용되는 프로토콜입니다. 데이터 패킷이 수신자에게 도달하도록 보장할 수 있습니다. 중간에 오류가 발생하면 이 프로토콜은 데이터 패킷을 다시 보냅니다.

3. UDP(사용자 데이터그램 프로토콜)는 연결이 없고 신뢰할 수 없는 데이터 전송 프로토콜입니다.


좋아요, 이제 소켓을 생성하려면 세 가지 요소가 필요하다는 것을 알았습니다. 따라서 PHP의 소켓_create()에는 세 가지 매개 변수, 프로토콜, 소켓 유형 및 공개 프로토콜이 필요합니다. 생성이 성공하면 소켓 리소스 유형을 반환합니다. 실패하면 false를 받게 됩니다.

CURL

cURL은 URL 구문을 사용하여 파일과 데이터를 전송하는 도구입니다. HTTP, FTP, TELNET을 지원합니다.

cURL을 사용하는 이유는 무엇인가요?

때때로 쿠키 처리, 확인, 양식 제출, 파일 업로드 등 웹페이지의 콘텐츠를 유연하게 가져오고 싶을 경우가 있습니다. 그렇다면 cURL을 사용해야 합니다. PHP에는 강력한 cURL 라이브러리가 있다고 합니다(힘이 어디에 있는지 알 수 없기 때문에 "그렇다고 합니다"라고 사용합니다 ㅋㅋㅋ).

php에서 cURL 옵션을 사용하는 기본 단계는 다음과 같습니다.

1. 초기화

2. 매개변수 설정

3. 페이지 콘텐츠 가져오기 또는 조작

아래의 간단한 예를 살펴보세요.

<?php
//初始化curl
$ch = curl_init ();
/*
 * 设置curl
 * php手册对于curl_setopt的解释为:设置对于curl传输的操作
 * curl_setopt有三个参数:资源(一般为你建立的curl句柄)、操作(你将对这个句柄作何操作)、参数(对于这个操作你给出的参数)
 */
//例如你想对百度进行某些操作
curl_setopt ( $ch, CURLOPT_URL, "http://www.baidu.com");
//现在看来你要向百度post数据
curl_setopt ( $ch, CURLOPT_POST, 1 );
/*给出了要post的数据:$post_string,post的数据可以是一个文件,
*那么你需要以@加上文件的全路径给出,或者你要post一些数据,
*那么你可以按照数组形式给出,或者按照字符串给出,
*如果你想按照字符串形式给出,请把字符串urlencode,嘿嘿
*/
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_string );
/*
 *把curl操作的结果以字符串形式 从curl_exec ()返回,而不是直接就输出了
 */
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
//得到操作返回结果
$result = curl_exec ( $ch );
//关闭curl句柄
curl_close ( $ch );
로그인 후 복사

PHP의 컬에는 많은 연산이 있기 때문에 모두 기억하기는 어려울 것 같습니다. 어쨌든 모두가 사용할 수 있는 몇 가지에 대해 이야기해 보겠습니다.

서버에 대한 정보를 얻으세요

<?php

//初始化curl
$ch = curl_init ();

curl_setopt ( $ch, CURLOPT_URL, "http://www.baidu.com");
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
curl_exec($ch);
$info = curl_getinfo($ch);

var_dump($info);
로그인 후 복사

위의 예를 통해 다음 정보를 얻을 수 있습니다:

"url" //리소스 네트워크 주소
"content_type" //콘텐츠 인코딩
"http_code" //HTTP 상태 코드
"header_size" //헤더 크기
"request_size" //요청 크기
"filetime" // 파일 생성 time
"ssl_verify_result" //SSL 검증 결과
"redirect_count" //점프 기술
"total_time" //총 소요 시간
"namelookup_time" //DNS 쿼리 시간
"connect_time" //연결 대기에 소요된 시간
"pretransfer_time " //전송 전 준비 시간이 많이 소요됨
"size_upload" //업로드된 데이터의 크기
"size_download" //다운로드된 데이터의 크기
"speed_download" //다운로드 속도
"speed_upload" //업로드 속도
"download_content_length”/ /다운로드된 콘텐츠의 길이
“upload_content_length” // 업로드된 콘텐츠의 길이
“starttransfer_time” // 전송 시작 ​​시간
“redirect_time” // 리디렉션 시간

curl을 사용하면 다음도 수행할 수 있습니다. 작업:

1. 페이지의 게시 작업 시뮬레이션
2. 파일 업로드
3. HTTP 인증
4. FTP 업로드
5. FQ 기술
6. 콜백 기능
ps:
컬에 대한 위의 주요 전제는 다음과 같습니다. 귀하의 PHP가 설치되고 컴파일되었습니다. --with-curlwrappers를 추가하면 phpinfo() 작업을 사용하여 컴파일 중에 이 확장 라이브러리를 추가했는지 확인할 수 있습니다.
이 확장이 로드되면 다음과 같은 내용이 표시됩니다.

이 확장이 없으면 php.ini 파일을 변경하고 확장명=php_curl.dll 앞에 있는 세미콜론을 제거해야 합니다.

좋아요, 이제 소켓과 컬이 무엇인지 알았습니다. 소켓은 서버와 클라이언트 간의 통신에 사용할 수 있는 데이터 구조입니다. Curl은 URL 구문 규칙을 사용하여 파일과 데이터를 전송하고 FTP, HTTP, TELNET 등과 같은 많은 프로토콜을 지원합니다.

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP 소켓과 컬의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!