socket_create()
Transkript
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
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č...
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ů...
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).
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).
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á...
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...
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...
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 ...
Dokumentace k API
SSLmarketu
verze 1.3