socket_create()

Transkript

socket_create()
PHP a síťová komunikace
Socket API
Sockety představují nízkoúrovňové API pro práci se
síťovými protokoly TCP a UDP.
Založeno dobře známém na BSD socket API.
V PHP lze napsat klienta i server.
socket_create() – vytvoří socket
socket_close() – zavře socket
socket_connect() – připojí socket k serveru
socket_bind() – sváže socket s daným portem
socket_listen() – povolí příjem spojení na socketu
socket_accept() – přijme jedno spojení
socket_read(), socket_write()
Se serverem mohou být potíže (např. omezená doba běhu skriptu).
Jako datový buffer pro posílání/čtení dat slouží stringy.
verze 1.1
© 2008-2009, Martin Kruliš
2
Socket API – příklad komunikace
klient
socket_create()
server
socket_create()
socket_bind()
socket_listen()
socket_accept()
socket_connect()
socket_read()
socket_write()
socket_read()
socket_write()
socket_close()
Příklad 1
verze 1.1
© 2008-2009, Martin Kruliš
3
Přístup ke vzdáleným souborům
PHP umí přistupovat přímo ke vzdáleným souborům.
Místo lokální cesty se soubor vyhledá pomocí URL.
Funkce fopen(), require(), include() …
Podporuje protokoly HTTP a FTP
HTTP protokol získává soubory pouze metodou GET.
Nelze nastavit pokročilejší vlastnosti protokolu.
V php.ini musí být povolena možnost allow_url_fopen.
Příklad:
require("ftp://user:[email protected]/fnc.php");
$fp = fopen("http://www.example.com/", "r");
...
verze 1.1
© 2008-2009, Martin Kruliš
4
Knihovna CURL
Externí knihovna (php_curl.dll)
Určena především pro HTTP komunikaci.
A také ftp, gopher, telnet, dict, file a ldap
Obsahuje podporu pro šifrování OpenSSL (protokol HTTPS).
Zvládá i složitější věci (cookies, proxy, autentikaci, …).
Základ API:
verze 1.1
curl_init() – vytvoří resource požadavku
curl_setopt() – nastaví parametr
curl_exec() – provede požadavek
curl_close() – zavře a uvolní resource
© 2008-2009, Martin Kruliš
Příklad 2
5
FTP
Knihovny pro práci s FTP jsou vestavěné.
Téměř každý příkaz FTP protokolu má ekvivalentní funkci.
Práce s FTP je stavová.
Základní funkce API:
Udržuje se resource reprezentující spojení se serverem.
ftp_connect() – připojí se k danému serveru
ftp_login() – přihlásí se uživatelským jménem a heslem
ftp_put(), ftp_get(), ftp_chdir(), ftp_nlist(), …
ftp_exec() – spustí daný příkaz (příkaz je předán ve stringu)
ftp_quit(), ftp_close() – ukončí spojení
Podporuje i šifrované SFTP.
verze 1.1
ftp_ssl_connect()
© 2008-2009, Martin Kruliš
Příklad 3
6
Pošta
Čtení pošty – protokol IMAP (POP3, NNTP)
Implementován v externí knihovně c-client (Linux) resp. rozšíření
php_imap.dll (Windows).
Knihovna obsahuje funkce pro vzdálenou správu poštovní schránky.
Podporuje protokoly IMAP, POP3 a přístup do lokální složky.
Při práci je třeba dávat pozor na kódování řetězců.
S protokolem POP3 nefungují všechny funkce.
MIME standard Base64 a QuotedPrintables.
Posílání mailů – protokol SMPT
Maily se posílají pouze funkcí mail().
Složitější parametry mailu se předají v hlavičkách (dle RFC 822).
Parametry SMTP lze konfigurovat v php.ini.
Příklad 4
verze 1.1
© 2008-2009, Martin Kruliš
7
Další protokoly a síťové funkce
DNS
SOAP (Simple Object Access Protocol)
gethostbyname() – DNS resolving (převod domény na IP)
gethostbyaddr() – reverzní DNS vyhledávání (IP -> doména)
Základní protokol pro komunikaci s webovými službami.
Zprávy jsou ve formátu XML posílány přes HTTP.
Implementace v PHP má vestavěnou podporu pro WDSL.
Knihovna OpenSSL
verze 1.1
Knihovna pro asymetrickou kryptografii.
Používá se v kombinaci s řadou protokolů (např. SSH).
© 2008-2009, Martin Kruliš
8

Podobné dokumenty

Dokumentace k API Balíkobot v1.75 2016-09-14

Dokumentace k API Balíkobot v1.75 2016-09-14 Dokumentace k API Balíkobot v1.75 2016-09-14 Pro jednoduché nasazení API je veškerá komunikace realizována přes URL adresy orientované na zdroje a HTTP autentizaci. Veškerá volání API jsou zabezpeč...

Více

Uživatelská technická dokumentace Verze 1.0

Uživatelská technická dokumentace Verze 1.0 Pro následovné procedury: Payment/get, Payment/confirm, Payment/cancel můžeme také uvést formát na odesílání dat dle tohoto vzorce: URL = URLpayu.cz/ Kodovani / NazevProcedury /Format kde Format mů...

Více

Procesor

Procesor Procesor se při práci hodně zahřívá a proto musí být chlazen. Na procesor se umisťuje chladič procesoru. Chladič se skládá z pasivní části (žebrování) a aktivní (větráček).

Více

Uživatelská technická dokumentace Verze 3.1

Uživatelská technická dokumentace Verze 3.1 Zákazník provádí úhradu platební kartou prostřednictvím stránky společnosti Skrill (bývalé Moneybookers).

Více

Dokumentace k API SSLmarketu

Dokumentace k API SSLmarketu Dokumentace k API SSLmarketu verze 1.3

Více

6 - TVOYO TV

6 - TVOYO TV Na základě Vašeho požadavku na obchodní oddělení a kontroly implementace dle kapitoly 5 Vám budou na Vašem POSu aktivovány jednotlivé platební metody. Můžete začít přijímat platby přes platební brá...

Více

Implementace aplikační vrstvy pro jednočipové mikrokontroléry

Implementace aplikační vrstvy pro jednočipové mikrokontroléry algoritmy jsou vytvořeny a implementovány přímo v paměti mikrokontroléru PIC 16C74A. Ten tvoří společně s převodníkem TTL/RS485 nejspodnější vrstvu síťového modelu TCP/IP, tedy jednak fyzickou, tak...

Více

Implementační manuál PayU pro e

Implementační manuál PayU pro e daného POS (obchodním místě v systému PayU). Např. Pokud je v POS nastaveno kódování UTF-8, ale v některém z parametrů zasíláte nějkaký znak nebo znaky, které ve znakové sadě UTF-8 neexistují, bude...

Více

Správa identity

Správa identity přístupu na úrovni aplikací. Příslušný software pro synchronizaci hesel typicky běží na některém serveru organizace a přes API je navázán na podporované databáze, na systémy zajišťující bezpečnost ...

Více