免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 1872 | 回复: 10
打印 上一主题 下一主题

在线等!关于cc编译的问题!急!顺便谢谢水中花大虾!  关闭 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-05 12:42 |只看该作者 |倒序浏览
但我编译server.c的时候出现如下错误。
cc server.c -lsocket
"server.c",line 24:error:undefined symbol:socklen_t
请问socklen_t是在哪定义的!少包含文件吗?还是少CC参数?

        /* File: server.c */

        #include <stdio.h>
        #include <sys/types.h>
        #include <sys/socket.h>
        #include <netinet/in.h>

        int main(int argc, char **argv)
        {
                int fd;
                int address_len;
                struct sockaddr_in address;

                //建立套接口
                fd = socket(AF_INET, SOCK_DGRAM, 0);        //SOCK_DGRAM

                //绑定地址和端口
                bzero(&address, sizeof(address));
                address.sin_family = AF_INET;
                address.sin_addr.s_addr = htonl(INADDR_ANY);
                address.sin_port = htons(1234);
                address_len = sizeof(address);
                bind(fd, (struct sockaddr *)&address, address_len);

                while(1) {
                        struct sockaddr_in client_address;
                        socklen_t len = sizeof(client_address);
                        int n;
                        char line[80];

                        printf("waiting...");
                        fflush(stdout);

                        //接收数据
                        n = recvfrom(fd, line, 80, 0,
                                (struct sockaddr *)&client_address, &len);
                        printf("server received %d:%s", n, line);

                        //发送数据
                        sendto(fd, line, n, 0,
                                (struct sockaddr *)&client_address, len);
                }
        }

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2005-11-05 12:45 |只看该作者
用 grep 找到包含文件就可以了.

在目录 /usr/include 下面,可能还包含子目录.

论坛徽章:
0
3 [报告]
发表于 2005-11-05 12:50 |只看该作者

找哪个文件呢?

socklen_t只是个定义符!为什么这个程序别人可以用呢?

论坛徽章:
0
4 [报告]
发表于 2005-11-05 12:53 |只看该作者

我的是SCO 5。0。5

大虾能否说具体点啊!

论坛徽章:
0
5 [报告]
发表于 2005-11-05 13:01 |只看该作者
socklen_t 改成 int

论坛徽章:
0
6 [报告]
发表于 2005-11-05 13:03 |只看该作者

你高!

我试试看!

论坛徽章:
0
7 [报告]
发表于 2005-11-05 13:15 |只看该作者

可以是可以编译了!

但不知编译的文件能不能正常执行!另外socklen_t到底在哪个文件中定义,还希望大虾继续明示。再另外,谁有CC的中文资料,我也想多看看,也不能老麻烦大家啊!

论坛徽章:
0
8 [报告]
发表于 2005-11-05 13:52 |只看该作者
你用的是sco吗?它上面不一定有socklen_t的。

socklen_t是一个至少32为的值,系统遵循不同的posix标准,有可能没有socklen_t,如果你非要用的话。可以typedef int socklen_t;

论坛徽章:
0
9 [报告]
发表于 2005-11-05 14:09 |只看该作者
socklen_t len = sizeof(client_address);

能在程序中声明变量吗?傻鸟

评分

参与人数 1可用积分 -2 收起 理由
win_hate -2 违规内容

查看全部评分

论坛徽章:
0
10 [报告]
发表于 2005-11-05 14:11 |只看该作者
在unistd.h中有定义
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP