c語言http客戶端
『壹』 設計一個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;
}
『貳』 c語言實現的http請求中,User-Agent該填什麼
User Agent表示的是客戶端軟體類型,也就是瀏覽器類型
『叄』 c語言如何調用網頁上某個功能
1、使用WebBrowser控制項,可以操作網頁中的元素、控制項,調用網頁的JS方法。 可以使用MFC集成WebBrowser。 QT中,有與WebBrowser類似的QWebEngineView控制項。
2、網頁錄入信息的本質是,你再填寫了信息之後,瀏覽器根據你的輸入,將數據通過HTTP的POST方式發送到伺服器。你若是不想手動錄入,便按照既定的格式,自己用程序構造HTTP的POST請求,然後將其發送到伺服器即可。 這里我肯定只能給出思路,具體的實現如果樓主還不清楚的話,建議樓主自己去學習一下web的工作方式、HTTP相關知識。 清楚了HTTP之後,c的網路相關直接用socket。若嫌麻煩便找個HTTP客戶端庫吧,建議使用curl。
『肆』 C語言或者C++如何調用一個http介面並得到返回結果
用jni
首先
java
中
public
class
testhello
{
static
{
system.loadlibrary("testhellos");
}
public
static
native
void
hello(string
msg);
public
native
void
getsysid();
public
native
string
getkeycode(string
sysid);
public
native
boolean
testkeycode(string
sysid,
string
keycode);
public
static
void
main(string[]
args)
{
//
hello("hello,kimm!");
testhello
t=
new
testhello();
t.getsysid();
}
}
用javac
testhello.java,
java
testhello,javah
-classpath
.
-verbose
testhello
。將生產的頭文件用到c++
中的
heardfileds
中。然後在
sources
files
中實現
heardfieds
的方法。實現的方法,其實就是你要調用c++的方法、
『伍』 自己寫的C語言http軟體無故崩潰
可以在網上多查找一些相關的資料,進行對比分析後做出自己的評判。
『陸』 如何用c語言實現http伺服器
去看一下《Advanced Linux Programming》這本書吧,第11章講的就是怎麼用C語言實現一Http伺服器。 這里有下載地址(英文的): http://www.advancedlinuxprogramming.com/alp-folder 英文看起來不順的話可以上網找找有沒有中文版的這本書,應該叫Linux高級編程吧~~~參考資料: http://www.advancedlinuxprogramming.com/alp-folder
『柒』 C語言,http報文,post請求,求大神詳解
URL要放在POST和HTTP/1.1之間,注意加空格。
URL好像不需要域名部分。
『捌』 C語言怎麼實現http下載文件功能
用c語言實現文件自動下載並且解壓1.自動下載 http://abc.com/test.rar 也可以下載FTP://abc.com/test.rar2.下載完成後自動解壓到本路徑下相同的文件夾裡面,如:test.rar就是test文件夾3.如果test文件夾已經存在並且裡面有內容就直接覆蓋4.軟體運行的時候提示用戶輸入存儲路徑5.下載過程中顯示下載進度6.一個好的編程會在適當的地方加上適當的注釋以上功能我已經用wget+winrar的做成批處理可以運行了,但是希望用C語言來實現先送50分,如果實現了在加送50分,不希望吧分數留給系統
希望採納
『玖』 用純C語言 怎樣編程,解析HTTP協議。
按照HTTP協議的規定,理清楚相關功能。
然後軟體模型的方式解釋HTTP的運行過程,可以使用UML語言。
然後將UML語言轉換成C語言即可。