目前我正在做一个项目,我正在使用我发现的一个小 C 应用程序将视频流式传输到 HTML5-GUI。
对于一些基本的事情,这段代码可以正常工作。我唯一想改变的是从另一个文件中读取视频文件的文件大小。因此,我正在阅读 C 中的文件:
char file_buf[32];
input = fopen("size.dat", "r");
fgets(file_buf, 32, input);
num_chunks = atoi(file_buf);
videosize = (num_chunks-1)*1024;
fclose(input);
printf("videosize: %d",videosize);
现在,即使我没有替换任何其他代码,我也会收到“错误的文件描述符”错误。这里有什么问题?
编辑:越来越多地测试应用程序,故障似乎很随机......有什么想法吗?
Edit2:当应该接受套接字时发生错误。代码如下所示:
if((socketfd = socket(AF_INET,SOCK_STREAM,0))==-1){
printf("Socket creation failed!\n");
}
printf("Socket Creation: %s\n",strerror(errno));
bzero(&sockserv,sizeof(sockserv));
sockserv.sin_family = AF_INET;
sockserv.sin_addr.s_addr = INADDR_ANY;
sockserv.sin_port = htons(8080);
if(bind(socketfd,(struct sockaddr *)&sockserv,sizeof(sockserv))<0)
{
printf("Error binding the socket\n");
}
printf("Socket Bind: %s\n",strerror(errno));
if(listen(socketfd,1) == -1){
printf("Listening to Socket failed \n");
}
printf("Socket Listen: %s\n",strerror(errno));
clientfd = accept(socketfd,(struct sockaddr*) &sockclient,&clientsocklen);
if(clientfd < 0){
printf("Accepting Socket failed!\n");
}
那里可能有什么问题?
最好的问候, PG