Search     or:     and:
 LINUX 
 Language 
 Kernel 
 Package 
 Book 
 Test 
 OS 
 Forum 
 iakovlev.org 
 Packages
 Make 
 Iptables 
 Nmap 
 Apache 
 LFS 
 TUX 
 cURL 
 libpcap 
 Parted 
 Httpd 
 File managers 
 FFMPEG 
 RTMP 
 SQL 
 Test 
 Git 
NEWS
Последние статьи :
  Тренажёр 16.01   
  Эльбрус 05.12   
  Алгоритмы 12.04   
  Rust 07.11   
  Go 25.12   
  EXT4 10.11   
  FS benchmark 15.09   
  Сетунь 23.07   
  Trees 25.06   
  Apache 03.02   
 
TOP 20
 Assembler...3133 
 Advanced Bash Scripting G...2743 
 Ethreal 4...2358 
 Secure Programming for Li...2135 
 Trees...1944 
 CPAN-> FAQ...1904 
 Alg1...1861 
 Ethreal 1...1747 
 Go Web ...1734 
 Тренажёр...1733 
 Ext4 FS...1733 
 Максвелл 3...1728 
 Intel 386...1703 
 William Gropp...1680 
 Rust...1676 
 Go...1504 
 C + UNIX...1504 
 Benchmark...1501 
 System...1357 
 Mod_parrot...1343 
 
  01.01.2025 : 3803065 посещений 

iakovlev.org

cURL Internals

 
  

Internals

Различия unix - windows 1. Функции для работы с сокетами имеют различный префикс. 2. Для создания сокета под винду нужны дополнительные вызовы 3. Файловые дескрипторы для сетевых соединений под винду имеют менее очевидную структуру,чем под юникс. 4. При выводе в поток винда делает досовские end-of-lines , что например может разрушить структуру данных , если она бинарная . Основные функции библиотеки имеют начальный префикс 'curl_easy' и лежат в lib/easy.c. 2 функции curl_global_init_() curl_global_cleanup() вызываются в начале и в конце . Функции типа printf() лежат в lib/mprintf.c. Функция curl_easy_init() создает структуру SessionHandle , которая работает со всеми функциями типа curl_easy. Функция curl_easy_setopt() инициализирует эту структуру . Функция curl_easy_perform() запускает : Curl_connect() Curl_do() Transfer() Curl_done() Curl_disconnect() 2 FTP-шных функции : Curl_if2ip() - получает ip-шник интерфейса Curl_ftpsendf() - посылает команды на ftp-сервер Получить 2 документа сразу : curl ftp://cool.haxx.se/ http://www.weirdserver.com:8000/ Получить удаленную страницу с сайта и скопировать ее локально : curl -o thatpage.html http://www.netscape.com/ Для получения ftp-файлов можно пойти несколькими путями : curl ftp://name:passwd@machine.domain:port/full/path/to/file или curl -u name:passwd ftp://machine.domain:port/full/path/to/file Можно документ получать по частям . Например , для получения первых 100 байтов : curl -r 0-99 http://www.get.this/ Получить последние 500 байт : curl -r -500 http://www.get.this/ FTP-upload : curl -T - ftp://ftp.upload.com/myfile или так: curl -T uploadfile -u user:passwd ftp://ftp.upload.com/myfile HTTP-upload : curl -T - http://www.upload.com/myfile Если что-то не работает , можно использовать опцию дебага : curl -v ftp://ftp.upload.com/ или curl --trace trace.txt www.haxx.se Для хранения http-хидера в отдельном файле : curl --dump-header headers.txt curl.haxx.se Для поста http-данных можно использовать опцию -d : curl -d "name=Rafael%20Sagula&phone=3320780" \ http://www.where.com/guest.cgi Рассмортим пример - пусть на сайте http://www.formpost.com/getthis/ лежит форма : < form action="post.cgi" method="post"> < input name=user size=10> < input name=pass type=password size=10> < input name=id type=hidden value="blablabla"> < input name=ding value="submit"> Мы хотим передать user='foobar' и password='12345': curl -d "user=foobar&pass=12345&id=blablabla&ding=submit" (continues) http://www.formpost.com/getthis/post.cgi
Оставьте свой комментарий !

Ваше имя:
Комментарий:
Оба поля являются обязательными

 Автор  Комментарий к данной статье