`
haohappy2
  • 浏览: 326359 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

how to use Socket and CURL

阅读更多
  1. <?php   
  2. /**  
  3. * Socket版本  
  4. * 使用方法:  
  5. * $post_string = "app=socket&version=beta";  
  6. * request_by_socket('facebook.cn','/restServer.php',$post_string);  
  7. */  
  8. function request_by_socket($remote_server,$remote_path,$post_string,$port = 80,$timeout = 30){   
  9.     $socket = fsockopen($remote_server,$port,$errno,$errstr,$timeout);   
  10.     if (!$socketdie("$errstr($errno)");   
  11.       
  12.     fwrite($socket,"POST $remote_path HTTP/1.0");   
  13.     fwrite($socket,"User-Agent: Socket Example");   
  14.     fwrite($socket,"HOST: $remote_server");   
  15.     fwrite($socket,"Content-type: application/x-www-form-urlencoded");   
  16.     fwrite($socket,"Content-length: ".strlen($post_string)+8."");   
  17.     fwrite($socket,"Accept:*/*");   
  18.     fwrite($socket,"");   
  19.     fwrite($socket,"mypost=$post_string");   
  20.     fwrite($socket,"");   
  21.       
  22.     $header = "";   
  23.     while ($str = trim(fgets($socket,4096))) {   
  24.         $header.=$str;   
  25.     }   
  26.       
  27.     $data = "";   
  28.     while (!feof($socket)) {   
  29.         $data .= fgets($socket,4096);   
  30.     }   
  31.       
  32.     return $data;   
  33. }   
  34.   
  35.   
  36. /**   
  37. * Curl版本   
  38. * 使用方法:   
  39. $post_string = "app=request&version=beta";   
  40. * request_by_curl('http://facebook.cn/restServer.php',$post_string);   
  41. */   
  42. function request_by_curl($remote_server,$post_string){   
  43.     $ch = curl_init();   
  44.     curl_setopt($ch,CURLOPT_URL,$remote_server);   
  45.     curl_setopt($ch,CURLOPT_POSTFIELDS,'mypost='.$post_string);   
  46.     curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);   
  47.     curl_setopt($ch,CURLOPT_USERAGENT,"Jimmy's CURL Example beta");   
  48.     $data = curl_exec($ch);   
  49.     curl_close($ch);   
  50.     return $data;   
  51. }   
  52. /**  
  53. * 其它版本  
  54. * 使用方法:  
  55. * $post_string = "app=request&version=beta";  
  56. * request_by_other('http://facebook.cn/restServer.php',$post_string);  
  57. */  
  58. function request_by_other($remote_server,$post_string){   
  59.     $context = array(   
  60.         'http'=>array(  
  61.             'method'=>'POST',  
  62.             'header'=>'Content-type: application/x-www-form-urlencoded'."".  
  63.                       'User-Agent : Jimmy's POST Example beta'."".   
  64.                       'Content-length: '.strlen($post_string)+8,   
  65.             'content'=>'mypost='.$post_string)   
  66.         );   
  67.     $stream_context = stream_context_create($context);   
  68.     $data = file_get_contents($remote_server,FALSE,$stream_context);   
  69.     return $data;   
  70. }   
  71.   
  72. ?>  
分享到:
评论

相关推荐

    curl 和 socket

    `curl`和`socket`是两种常用的网络通信工具,它们各自有着独特的特性和应用场景。本文将深入探讨这两个库在iOS上的应用以及它们之间的差异。 首先,我们来了解`curl`。`curl`是一个命令行工具和库,用于在各种协议...

    curl-unix-socket, 通过UNIX套接字运行HTTP请求.zip

    curl-unix-socket, 通过UNIX套接字运行HTTP请求 在UNIX套接字上的HTTP请求我想尝试 Docker API而不在TCP套接字上绑定它。 Curl在UNIX套接字上不工作,因此我已经完成了以下操作:插件生成go get github....

    【???】php socket cURL

    学习和使用Socket及cURL时,源码分析和工具辅助至关重要。源码可以帮助我们理解底层工作原理,提升编程技能;工具如Wireshark(网络封包分析软件)可以帮助我们查看网络通信过程,调试和优化代码。 总的来说,掌握...

    curl下载curl包下载

    下载`curl`包的过程非常简单,首先,你需要访问`curl`的官方网站或者通过软件仓库(如APT for Ubuntu或YUM for CentOS)获取最新版本。官网地址是&lt;https://curl.se/download.html&gt;。在网站上,你可以找到适用于不同...

    Curl.zip_C++ curl_DEMO_c++ curl_curl_curl c++

    Curl.zip 文件包含了一个在Windows环境下使用C++开发的CURL库示例程序。CURL是一个流行的开源库,用于在各种编程语言中处理URL传输,包括文件上传、下载、HTTP、HTTPS、FTP等网络协议。这个C++ DEMO将帮助我们理解...

    clamav-onacc

    克拉马伏那卡 Ansible剧本,用于安装和自定义ClamAV并针对受感染的文件进行测试。 支持Linux发行版 Debian 9 Debian 10 ... Version of curl is too low to use fdpassing. Please use tcp socket

    cURL工具库及头文件

    cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。cURL支持的通信协议有FTP...

    WWW-Curl-4.17.tar_curl_www_www-curl_Perl_

    然后在 Perl 脚本中,通过 `use WWW::Curl;` 导入模块,创建 `Curl` 对象并调用其方法发起网络请求。 6. **示例代码**: 以下是一个简单的 `WWW::Curl` 使用示例,演示如何发起 GET 请求并获取响应内容: ```perl...

    CURL-TO-PY:将curl转移到python

    python /path/to/curl_to_py.py curl到python的样本: curl -u香蕉:椰子-d“示例数据” 结果: import requests headers = { 'Content-Type' : 'application/x-www-form-urlencoded' , } fullurl = '...

    curl https://github.com/curl/curl.git

    指的是使用 `curl` 命令行工具从 GitHub 克隆 `curl` 项目的 Git 仓库。`curl` 是一个用于传输数据的命令行工具,它支持多种协议,包括 HTTP、HTTPS、FTP 等。在本例中,它被用来与 Git 协议交互,克隆 `curl/curl` ...

    curl-7.53.1_spendrhy_curl_aix7.1安装curl_

    `curl-7.53.1`是该工具的一个特定版本,由`spendrhy`发布,适用于AIX 7.1操作系统。在AIX系统上安装`curl`对于系统管理员和开发人员来说非常重要,因为它提供了对网络资源的便捷访问,特别是用于调试和测试URL。 ...

    curl-7.59.0.zip

    Find out how to use curl by reading [the curl.1 man page](https://curl.haxx.se/docs/manpage.html) or [the MANUAL document](https://curl.haxx.se/docs/manual.html). Find out how to install Curl

    curl手册 用curl的

    $message = 'This message was generated by curl and php'; $curlPost = 'pNUMBER=' . urlencode($phoneNumber) . '&MESSAGE=' . urlencode($message) . '&SUBMIT=Send'; $ch = curl_init(); curl_setopt($ch, ...

    cURL(curl-8.4.0)

    curl-8.4.0.tar.gz curl-8.4.0.zip

    windows版curl

    Mail bug reports and suggestions to &lt;bug-wget@gnu.org&gt;. arent directory. s. wget.HLP: No such file or directory C:\Users\root&gt;curl --help Usage: curl [options...] --abstract-unix-socket ...

Global site tag (gtag.js) - Google Analytics