struct sockaddr_in 的问题,我歇菜了

huchishihao 2011-11-18 05:14:11
直接上程序:很简单的函数,我把该去掉的都去掉了,就这样加个main函数gcc编译还是报错,我晕死

void camera_thread()
{
int video_sockfd;
struct sockaddr_in camera_addr;
video_sockfd = socket(AF_INET, SOCK_STREAM, 0);
//init_connect(&camera_addr,4444,Local_ip);
//if(-1 == connect(video_sockfd,(struct sockaddr *)(&camera_addr),sizeof(struct sockaddr)))
{
printf("in camera_thread():connect failed,socketfd = %d\n",video_sockfd);
return ;
}
//video_read(video_sockfd);
}

编译报错:video_monitoring.c: In function ‘camera_thread’:
video_monitoring.c:56: error: storage size of ‘camera_addr’ isn’t known

再贴出我的头文件:
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/types.h>


//#include "msghand.h"

我想头文件应该没问题了吧,#include <sys/socket.h>也有,可还是报如上的错误,好吧,我彻底歇菜了,高人来指点
补充下,我想我的gcc应该没问题,应为我编译其他的.c文件的时候里面也有用到这个定义,可都没报错,唯独选中了这个.c,老报这个错误
...全文
129 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
huchishihao 2011-11-21
  • 打赏
  • 举报
回复
确实如楼上所说,我少加了#include <netinet/in.h>
qq120848369 2011-11-18
  • 打赏
  • 举报
回复
if(-1 == connect(video_sockfd,(struct sockaddr *)(&camera_addr),sizeof(struct sockaddr)))

最后一个参数是sizeof(struct sockaddr_in).

头文件至少包含这三个:

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

如何找到请man inet_addr,这是我常用的办法。
huchishihao 2011-11-18
  • 打赏
  • 举报
回复
今天星期五啊,明天不上班啊,,,
难道都下班了?
huchishihao 2011-11-18
  • 打赏
  • 举报
回复
高人在哪里啊,这个问题怎么又貌似很深奥,,,,,????
huchishihao 2011-11-18
  • 打赏
  • 举报
回复
怎么回事啊,真的是彻底歇菜了,这个问题,,,,,无语了,估计是很简单的问题

23,126

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧