linux怎么样用终端打开百度,linux下用终端访问百度网站.doc

linux下用终端访问百度网站

linux下用终端访问百度网站

// http.c

#include

#include

#include

#include

#include

#include

#include

#include

#define BUFSIZE 10240

int main(int argc, char *argv[]) {

if (argc != 3) {

printf("Parameter(s): \n");

exit(1);

}

char *servIP = argv[1];

in_port_t servPort = atoi(argv[2]);

char *echoString = "GET / HTTP/1.1\nHost: \nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6) GeckoFirefox/1.0.1\nConnection: Keep-Alive\n\n";

int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

if (sock < 0) {

printf("socket() failed\n");

exit(1);

}

struct sockaddr_in servAddr;

memset(&servAddr, 0, sizeof(servAddr));

servAddr.sin_family = AF_INET;

int rtnVal = inet_pton(AF_INET, servIP, &servAddr.sin_addr.s_addr);

if (rtnVal == 0) {

printf("inet_pton() failed, invalid address string\n");

exit(1);

}

else if (rtnVal < 0) {

printf("inet_pton() failed\n");

exit(1);

}

servAddr.sin_port = htons(servPort);

if (connect(sock, (struct sockaddr *) &servAddr, sizeof(servAddr)) < 0) {

printf("connect() failed\n");

exit(1);

}

size_t echoStringLen = strlen(echoString);

ssize_t numBytes = send(sock, echoString, echoStringLen, 0);

if (numBytes < 0) {

printf("send() failed");

exit(1);

}

else if (numBytes != echoStringLen) {

printf("send(), sent unexpected number of bytes");

exit(1);

}

unsigned int totalBytesRcvd = 0;

//printf("Received: ");

while (totalBytesRcvd < echoStringLen) {

char buffer[BUFSIZE];

numBytes = recv(sock, buffer, BUFSIZE, 0);

if (numBytes < 0) {

printf("recv() failed");

exit(1);

}

else if (numBytes == 0) {

printf("recv(),

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值