Http bad file descriptor
2017-04-11 12:16
330 查看
突然来的灵感,把自己编程时遇到的问题贴出来。欢迎大家帮助一起解决。
下面是我自己写的一个简单的Http程序,可以成功编译。
但是在浏览器127.0.0.1 回车之后。页面没有反应
send 函数返回 -1 报错信息:Bad
file descriptor
个人怀疑是第二个参数content 的错误。但学艺不精,不知如何解决。请各位大侠帮忙。
send 的文档官方文档如下,严重怀疑是参数的错误:
ssize_t send(int sockfd, const void *buf, size_t len, int
flags);
#include<stdlib.h>
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<string.h>
#include<sys/un.h>
#include<arpa/inet.h>
int main(){
int server_fd, client_fd;
int
return_bind;
int return_accept;
struct sockaddr_in myadd;
struct
sockaddr_in clientadd;
int
client_len=sizeof(clientadd);
char content
[]="<html><h1>hello
jeremy</h1></html>";
myadd.sin_family=AF_INET;
myadd.sin_addr.s_addr=htonl(INADDR_ANY);
myadd.sin_port=htons(80);
server_fd= socket(AF_INET,SOCK_STREAM,0);
if(server_fd==-1){
perror("socket
error");
exit(1);
}
//bind
return_bind = bind(server_fd,(struct sockaddr
*)&myadd,sizeof(myadd));
if(return_bind==-1){
perror("socket error");
exit(1);
}
//listen
if(listen(server_fd,20)==-1){
perror("listen error");
exit(1);
}
//accept
while(1){
return_accept= accept(server_fd,(struct sockaddr
*)&clientadd,&client_len);
if(return_accept==-1){
perror("accept ");
}
printf("accept");
if(send(client_fd,content,sizeof(content),0)==-1){
perror("send
error");
exit(1);
}
close(client_fd);
}
close(server_fd);
}
下面是我自己写的一个简单的Http程序,可以成功编译。
但是在浏览器127.0.0.1 回车之后。页面没有反应
send 函数返回 -1 报错信息:Bad
file descriptor
个人怀疑是第二个参数content 的错误。但学艺不精,不知如何解决。请各位大侠帮忙。
send 的文档官方文档如下,严重怀疑是参数的错误:
ssize_t send(int sockfd, const void *buf, size_t len, int
flags);
#include<stdlib.h>
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<string.h>
#include<sys/un.h>
#include<arpa/inet.h>
int main(){
int server_fd, client_fd;
int
return_bind;
int return_accept;
struct sockaddr_in myadd;
struct
sockaddr_in clientadd;
int
client_len=sizeof(clientadd);
char content
[]="<html><h1>hello
jeremy</h1></html>";
myadd.sin_family=AF_INET;
myadd.sin_addr.s_addr=htonl(INADDR_ANY);
myadd.sin_port=htons(80);
server_fd= socket(AF_INET,SOCK_STREAM,0);
if(server_fd==-1){
perror("socket
error");
exit(1);
}
//bind
return_bind = bind(server_fd,(struct sockaddr
*)&myadd,sizeof(myadd));
if(return_bind==-1){
perror("socket error");
exit(1);
}
//listen
if(listen(server_fd,20)==-1){
perror("listen error");
exit(1);
}
//accept
while(1){
return_accept= accept(server_fd,(struct sockaddr
*)&clientadd,&client_len);
if(return_accept==-1){
perror("accept ");
}
printf("accept");
if(send(client_fd,content,sizeof(content),0)==-1){
perror("send
error");
exit(1);
}
close(client_fd);
}
close(server_fd);
}
相关文章推荐
- [CRIU]tty: Can't open 9 (index 0): Bad file descriptor" occurred in the restoring step
- 对于报 'Bad file descriptor'错误的原因
- SCRIPT7002: XMLHttpRequest: 网络错误 0x2ef3, 由于出现错误 00002ef3 
- apache http ssl模块NoC…
- cannot find the tag library descriptor for "http://java.sun.com/jsp/jstl/core"
- MyEclipse 出错提示 Can not find the tag library descriptor for "http://java.sun.com/jsp/jstl/core"
- linux上oracle9i执行dbca 报java.io.IOException: Bad file descriptor
- Error Domain=ASIHTTPRequestErrorDomain Code=5 "Unable to create request (bad url?)" UserInfo=0x15f86
- flex 上传 文件 FileReference loa…
- std::ifstream vShaderfile & vShaderfile.ifstream.exceptions(std::ifstream::badbit)
- 解决:php-5.4.17的ERROR: unable to read what child say: Bad file descriptor (9)
- asynch descriptor resi…
- HTTP&nbsp;response
- Oracle&nbsp;bigfile&nbsp;大文件表空间
- 使用Apache httpclient
- File&nbsp;Save&nbsp;type&nbsp;归档形式存储文件…
- C语言 HTTP 下载文件
- 实现任意文件下载&nbsp;FileDownload使用教程
- 写一个docker file
- 解决IBM http server无…