導航:首頁 > IDC知識 > http伺服器c

http伺服器c

發布時間:2020-10-13 01:19:36

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伺服器

//服務端簡易代碼如下:
#include <stdio.h>  
#include <stdlib.h>  
  
#include <err.h>  
#include <event.h>  
#include <evhttp.h>  
  
void http_handle(struct evhttp_request *req, void *arg); /*  HTTP Request Handle  */  
  
int main(){  
    struct evhttp *httpd;  
    event_init();  
    httpd = evhttp_start("0.0.0.0", 2345);  
    if (httpd == NULL) {  
        fprintf(stderr, "Error: Unable to listen on %s:%d ");  
        exit(1);      
    }     
    evhttp_set_timeout(httpd, 2000);  
    evhttp_set_gencb(httpd, http_handle, NULL);  
    event_dispatch();  
    evhttp_free(httpd);  
  
    return 0;  
}  
  
void http_handle(struct evhttp_request *req, void *arg){  
    struct evbuffer *buf;  
    buf = evbuffer_new();  
  
    /*  Response the client  */  
    evhttp_send_reply(req, HTTP_OK, "OK", buf);  
  
    //evbuffer_add_printf(buf, "%s", "HTTPSQS_AUTH_FAILED");  
  
    /*  Release the memory  */  
    evbuffer_free(buf);  
    fprintf(stderr,"Send  ");  
}

編譯:編譯時把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。

與http伺服器c相關的知識