1、linux下C語言怎麼讀取http文件內容
http是協議
不是文件
你這個說法就有問題了。
如果你想用C讀網頁 可以考慮使用socket 不過還是有些麻煩的。
2、C 語言在Linux下發送HTTP 請求
您好 您直接建立一個socket,把http協議的內容放在buffer中,發送到伺服器就可以,在c語言中,盡量比較底層的操作,這樣您可以更靈活的操作,我們一般都是這么實現的~
3、如何Linux下用C寫的Http server
www.freebsd.org/ports
4、設計一個linux c語言,Http協議的伺服器,用socket收發消息,簡單點,求代碼and注釋。
OK
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/ip.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include <unistd.h>
#include <string.h>
int main(int argc,char *argv[])
{
int sockfd,new_socket;
int sock_value;
char buf[] = "hello! China!I Love You\n";
struct sockaddr_in client_;
struct sockaddr_in server_;
int SIZE = sizeof(struct sockaddr_in);
if(argc != 2){
fprintf(stderr,"The two number!\n");
exit(1);
}
if((sock_value = atoi(argv[1])) < 0){
fprintf(stderr,"socket error!\n");
exit(1);
}
if((sockfd = socket(PF_INET,SOCK_STREAM, 0)) == -1){
perror("socket");
exit(1);
}
bzero(&server_,SIZE);
server_.sin_family = PF_INET;
server_.sin_port = htons(sock_value);
server_.sin_addr.s_addr = INADDR_ANY;
if(bind(sockfd,(struct sockaddr *)(&server_),SIZE) == -1){
perror("bind");
exit(1);
}
if(listen(sockfd, 12) == -1){
perror("listen");
exit(1);
}
printf("Waiting ... ...\n");
while(1){
if((new_socket = accept(sockfd,(struct sockaddr *)(&client_),&SIZE)) == -1){
perror("accept");
exit(1);
}
printf("The client IP is %s\n",inet_ntoa(client_.sin_addr));
printf("The socket is %d\n",ntohs(client_.sin_port));
if(write(new_socket,buf,strlen(buf)) == -1){
perror("write");
exit(1);
}
int my;
char mybuf[1024];
if((my = read(new_socket, mybuf,1024)) == -1){
perror("read");
exit(1);
}
mybuf[my] = '\0';
printf("#++++#++++#:%s\n",mybuf);
close(new_socket);
}
close(sockfd);
return 0;
}
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/ip.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include <unistd.h>
int main(int argc,char *argv[])
{
int sockfd;
int sock_value;
char buf[1024];
char mybuf[] = "Linux\n";
int read_count;
struct sockaddr_in client_;
struct sockaddr_in server_;
int SIZE = sizeof(struct sockaddr_in);
if(argc != 3){
fprintf(stderr,"The two number!\n");
exit(1);
}
if((sock_value = atoi(argv[2])) < 0){
fprintf(stderr,"socket error!\n");
exit(1);
}
if((sockfd = socket(PF_INET,SOCK_STREAM, 0)) == -1){
perror("socket");
exit(1);
}
bzero(&client_,SIZE);
bzero(&server_,SIZE);
client_.sin_family = PF_INET;
client_.sin_port = htons(52252);
client_.sin_addr.s_addr = INADDR_ANY;
server_.sin_family = PF_INET;
server_.sin_port = htons(sock_value);
server_.sin_addr.s_addr = inet_addr(argv[1]);
if(connect(sockfd,(struct sockaddr *)(&server_),SIZE) == -1){
perror("connect");
exit(1);
}
if((read_count = read(sockfd,buf,1024)) == -1){
perror("read");
exit(1);
}
buf[read_count] = '\0';
printf("#----#----#:%s\n",buf);
if(write(sockfd, mybuf,6) == -1){
perror("write");
exit(1);
}
close(sockfd);
exit(0);
return 0;
}
5、linux c++中要如何調用一個http介面
可以使用libcurl 庫
https://curl.haxx.se/libcurl/
#include <stdio.h>更多的例子在這里 https://curl.haxx.se/libcurl/c/example.html
6、在LINUX下如何利用C語言實現HTTP的get和post方法?
下載wget的源碼看看就知道了
7、大神們,常用的linux c/c++ http開源庫有哪些,給個推薦吧
客戶端庫有libcurl
服務端庫有基於libevent的libevhtp
8、設計一個linux c語言,Http協議的伺服器,用socket收發消息,簡單點,如何實現。求高手解答
去看一下《Advanced Linux Programming》這本書吧,第11章講的就是怎麼用C語言實現一Http伺服器。
這里有下載地址(英文的):
http://www.advancedlinuxprogramming.com/alp-folder
英文看起來不順的話可以上網找找有沒有中文版的這本書,應該叫Linux高級編程吧~~~
9、如何用c語言實現http伺服器
//服務端簡易代碼如下:編譯:編譯時把libevent的類庫中的.so文件和.h文件連接 進來。