1、c語言下載在http伺服器上的文件。
URLDownLoadToFile或URLDownloadToCacheFile,可以將文件下載到文件
例子:
URLDownloadToFile(NULL,/*URL*/, "C:\\1.dat", 0, NULL);
URLDownloadToCacheFile(NULL,
/*URL*/,
/*用於保存文件位置的字元數組*/,
/*上一個參數的大小*/,NULL,NULL);
2、如何用c語言實現基於http的webservice
package com.yun.test;
import java.rmi.RemoteException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.message.PrefixedQName;
import org.apache.axis.message.SOAPHeaderElement;
import com.cezanne.golden.user.Exception;
import com.cezanne.golden.user.UserManagerServiceProxy;
import javax.xml.namespace.QName;
import java.net.MalformedURLException;
import javax.xml.rpc.ServiceException;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPException;
public class testWebService {
public static String getResult() throws ServiceException, MalformedURLException, RemoteException, SOAPException
{
//標識Web Service的具體路徑
String endpoint = "WebService服務地址";
// 創建 Service實例
Service service = new Service();
// 通過Service實例創建Call的實例
Call call = (Call) service.createCall();
//將Web Service的服務路徑加入到call實例之中.
call.setTargetEndpointAddress( new java.net.URL(endpoint) );//為Call設置服務的位置
// 由於需要認證,故需要設置調用的SOAP頭信息。
Name headerName = new PrefixedQName( new QName("發布的wsdl里的targetNamespace里的url", "string_itemName") );
org.apache.axis.message.SOAPHeaderElement header = new SOAPHeaderElement(headerName);
header.addTextNode( "blablabla" );
call.addHeader(header);
// SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement("發布的wsdl里的targetNamespace里的url", "SoapHeader");
// soapHeaderElement.setNamespaceURI("發布的wsdl里的targetNamespace里的url");
// try
// {
// soapHeaderElement.addChildElement("string_itemName").setValue("blablabla");
// }
// catch (SOAPException e)
// {
// e.printStackTrace();
// }
// call.addHeader(soapHeaderElement);
//調用Web Service的方法
org.apache.axis.description.OperationDesc oper;
org.apache.axis.description.ParameterDesc param;
oper = new org.apache.axis.description.OperationDesc();
oper.setName("opName");
param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg0"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName(", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg1"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName(", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg2"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName(", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
oper.setReturnType(new javax.xml.namespace.QName(", "string"));
oper.setReturnClass(java.lang.String.class);
oper.setReturnQName(new javax.xml.namespace.QName("", "return"));
oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
oper.setUse(org.apache.axis.constants.Use.LITERAL);
oper.addFault(new org.apache.axis.description.FaultDesc(
new javax.xml.namespace.QName("發布的wsdl里的targetNamespace里的url", "Exception"),
"Exception",
new javax.xml.namespace.QName("發布的wsdl里的targetNamespace里的url", "Exception"),
true
));
call.setOperation( oper );
call.setOperationName(new javax.xml.namespace.QName("發布的wsdl里的targetNamespace里的url", "opName"));
//調用Web Service,傳入參數
String res = ( String ) call.invoke( new Object[]("arg0","arg1"));
System.out.println("===============");
return res;
}
/**
* @param args
*/
public static void main(String[] args) {
try {
System.out.println(getResult());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (ServiceException e) {
e.printStackTrace();
} catch (SOAPException e) {
e.printStackTrace();
}
}
}
3、nginx+FastCGI+C/C++的搭建http伺服器的問題
建議:
1、使用短連接,nginx+fastcgi不太適合長連接應用
2、如果使用長連接,請設置並調整nginx.conf中fastcgi相關的參數,比如buffer之類
4、C語言連接HTTP伺服器後如何用POST交流
這個和具體的網頁有關系的,你可以用HttpWatch之類的抓包工具分析一個網頁的請求和返回。
然後就可以自己模仿相關的請求訪問該網頁了。
5、Http協議默認埠號為( )
代理伺服器常用以下埠:
(1). HTTP協議代理伺服器常用埠號:80/8080/3128/8081/9080
(2). SOCKS代理協議伺服器常用埠號:1080
(3). FTP(文件傳輸)協議代理伺服器常用埠號:21
(4). Telnet(遠程登錄)協議代理伺服器常用埠:23
HTTP伺服器,默認的埠號為80/tcp(木馬Executor開放此埠);
HTTPS(securely transferring web pages)伺服器,默認的埠號為443/tcp 443/udp;
Telnet(不安全的文本傳送),默認埠號為23/tcp(木馬Tiny Telnet Server所開放的埠);
FTP,默認的埠號為21/tcp(木馬Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所開放的埠);
TFTP(Trivial File Transfer Protocol ),默認的埠號為69/udp;
SSH(安全登錄)、SCP(文件傳輸)、埠重定向,默認的埠號為22/tcp;
SMTP Simple Mail Transfer Protocol (E-mail),默認的埠號為25/tcp(木馬Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都開放這個埠);
POP3 Post Office Protocol (E-mail) ,默認的埠號為110/tcp;
WebLogic,默認的埠號為7001;
Webshpere應用程序,默認的埠號為9080;
webshpere管理工具,默認的埠號為9090;
JBOSS,默認的埠號為8080;
TOMCAT,默認的埠號為8080;
WIN2003遠程登陸,默認的埠號為3389;
Symantec AV/Filter for MSE ,默認埠號為 8081;
Oracle資料庫,默認的埠號為1521;
ORACLE EMCTL,默認的埠號為1158;
Oracle XDB( XML 資料庫),默認的埠號為8080;
Oracle XDB FTP服務,默認的埠號為2100;
MS SQL*SERVER資料庫server,默認的埠號為1433/tcp 1433/udp;
MS SQL*SERVER資料庫monitor,默認的埠號為1434/tcp 1434/udp;
QQ,默認的埠號為1080/udp
6、怎麼用C實現Http POST功能向Http伺服器上傳文件
文件可以使用sendfile直接過去
比如剛開始是報文頭部結束\r\n\r\n直接write就可以
然後文件數據可以直接sendfile處理,
也可以
#define BUFSIZE 8196
while(read(fd,buf,BUFSIZE)>0){
write(...);
}
CONTENT-LENGTH是報文頭結束\r\n\r\n之後的位元組總數
7、C語言下載http伺服器html文件 ?
linux上curl -s 網站名,出來的就是那個網站的html語言,然後你復制粘貼到一個html文件里就ok了。如果沒有curl工具,自己網路下載一個。
8、如何用c語言實現http伺服器
//服務端簡易代碼如下:編譯:編譯時把libevent的類庫中的.so文件和.h文件連接 進來。
9、設計一個linux c語言,Http協議的伺服器,用socket收發消息,簡單點,如何實現。求高手解答
去看一下《Advanced Linux Programming》這本書吧,第11章講的就是怎麼用C語言實現一Http伺服器。
這里有下載地址(英文的):
http://www.advancedlinuxprogramming.com/alp-folder
英文看起來不順的話可以上網找找有沒有中文版的這本書,應該叫Linux高級編程吧~~~
10、通常郵件接收伺服器遵循的是( )協議。 A、SMTP B、POP3 C、FTP D、HTTP
B
POP3(Post Office Protocol 3)即郵局協議的第3個版本,還有一個接收伺服器協議是imap。