Chinaunix首页 | 论坛 | 博客
  • 博客访问: 47824
  • 博文数量: 26
  • 博客积分: 586
  • 博客等级: 中士
  • 技术积分: 230
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-08 20:10
文章分类
文章存档

2012年(6)

2011年(20)

我的朋友

分类: 网络与安全

2011-04-11 18:10:53

// http_client.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include
#include "winsock2.h"
 
#pragma comment(lib, "ws2_32.lib")
 
int main(void)
{
       SOCKET      sSocket      = INVALID_SOCKET;
       SOCKADDR_IN stSvrAddrIn = {0}; /* 服务器端地址 */
       char        sndBuf[1024] = {0};
       char        rcvBuf[2048] = {0};
       char       *pRcv         = rcvBuf;
       int         num          = 0;
       int         nRet         = SOCKET_ERROR;
 
    WSADATA     wsaData;
 
       /* HTTP 消息构造开始,这是程序的关键之处 */
       sprintf(sndBuf, "GET /mboss/HelloWorld HTTP/1.1\n");
/*       strcat(sndBuf, "Host:
       /* HTTP 消息构造结束 */
      
       /* socket DLL初始化 */
    WSAStartup(MAKEWORD(2, 0), &wsaData);
 
       stSvrAddrIn.sin_family      = AF_INET;
    stSvrAddrIn.sin_port        = htons(8080);
       stSvrAddrIn.sin_addr.s_addr = inet_addr("192.168.1.119");
 
       sSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
 
       /* 连接 */
       nRet = connect(sSocket, (SOCKADDR*)&stSvrAddrIn, sizeof(SOCKADDR));
       if (SOCKET_ERROR == nRet)
       {
              printf("connect fail!\n");
              return -1;
       }
      
       /* 发送HTTP请求消息 */
       send(sSocket, (char*)sndBuf, sizeof(sndBuf), 0);
 
       /* 接收HTTP响应消息 */
       while(1)
       {
              num = recv(sSocket, pRcv, 2048, 0);
 
              pRcv += num;
 
           if((0 == num) || (-1 == num))
              {
                     break ;
              }
       }
      
       /* 打印响应消息 */
       printf("%s\n", rcvBuf);
 
       return 0;
}
 
阅读(832) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~