LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1152|回复: 3

请问linux的socket是怎么用的啊?

[复制链接]
发表于 2010-7-7 15:36:05 | 显示全部楼层 |阅读模式
写了一个程序,但编译之后运行一点反应也没有。
int main(int argc,char* argv[]){
        if(argc!=2){
                fprintf(stderr,"lease input a hostname\n");
                return -1;
        }
        int socket_fd=socket(PF_INET,SOCK_STREAM,0);
        struct sockaddr_in address={
                .sin_family=AF_INET,
                .sin_port=htons(80),
        };
        inet_aton(argv[1],&address.sin_addr);
        memset(&address,0,sizeof(address));
        if(connect(socket_fd,(struct sockaddr*)&address,sizeof(struct sockaddr_in))){
                fprintf(stderr,"failed to connect\n");
                return -1;
        }
        printf("Server Conected!\n");
        char* html_document=(char*)malloc(sizeof(char));;
        char* head="GET /index.html HTTP/1.1\n";
        if(send(socket_fd,head,strlen(head),0)==-1){
                fprintf(stderr,"failed to send\n");
                return -1;
        }
        printf("Head Sended!\n");
        printf("%s",head);
        if(recv(socket_fd,html_document,65535,0)==-1){
                fprintf(stderr,"failed to receve\n");
                return -1;
        }
        printf("%s\n",html_document);
        return 0;
}
发表于 2010-7-7 21:45:27 | 显示全部楼层
你先ping一下你要连接的server看看能不能ping通,有可能堵在connect上了,就没有反应了。
回复 支持 反对

使用道具 举报

发表于 2010-8-29 21:52:07 | 显示全部楼层
先有基础知识再写程序吧  你写的根本就不堪入目。
你是copy的? 还是自己写的?

如果是自己写的,请先把c的基础学好
回复 支持 反对

使用道具 举报

发表于 2010-9-2 08:41:49 | 显示全部楼层
memset(&address,0,sizeof(address));这行放在这没意思。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表