http://blog.sina.com.cn/s/blog_4b73e760010007ie.html
C语言实现Web客户端
(2007-01-23 21:41:54)分类: 学习心得 |
和我的上一篇文章是一起写的,呵呵,大家给提点意见啊。
:-)
/*********filename : Client.cpp****************
该程序通过标准socket实现HTTP/1.0协议
运行该程序可以通过GET 方法取得Head域并将
所请求的内容存储到本地
**********************************************/
**********************************************/
#include <winsock.h>
#include <iostream>
#include <iostream>
#define HTTP_PORT 80
//HTTP连接的默认端口号
#define MAXSIZE 256
//自定义的每次传输数据的最大数量
#define MAXSIZE 256
using namespace std;
/*
* 这个方法构造本地SOCKET
* @return
*
返回构造好的socket描述符
*/
int make_socket() {
struct sockaddr_in local_addr;
//该结构体存储本地地址信息
int make_socket() {
}
/**************************************
该方法包装了send()
通过该方法发送数据 能够全部发出
没有遗漏
**************************************/
int sendall(int s, char *buf, int *len) {
int total = 0;
// 已经发送字节数
int bytesleft = *len;
// 还剩余多少字节数
int n;
while(total < *len) {
n = send(s, buf+total, bytesleft, 0);
// 发送数据
if (n == -1) { break; }
total += n;
bytesleft -= n;
}
*len = total;
// 返回实际发送出去的字节数
return n==-1?-1:0;
// 成功发送返回0 失败-1
}
**************************************/
int sendall(int s, char *buf, int *len) {
}
/**************************************
主函数main()
整个程序的入口
**************************************/
void main() {
/*
* 调用WSAStartup() 便于访问sockets library
*/
WSADATA wsaData;
if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0) {
fprintf(stderr, "WSAStartup failed.\n");
exit(1);
}
/*
* 需要用到的参数
*/
char server[100];
//用来保存用户想要连接的服务器地址
char command[100];
//用户命令
char filename[100];
//用户输入的用来保存实体内容的文件名
char buf[MAXSIZE];
//读取数据的缓存字节数组
FILE * to_store;
//用来存储文件内容的文件指针
int len = -1;
**************************************/
void main() {
}
/*********程序结束Client.cpp***********/