Chinaunix
标题:
在线等!关于cc编译的问题!急!顺便谢谢水中花大虾!
[打印本页]
作者:
lylouie
时间:
2005-11-05 12:42
标题:
在线等!关于cc编译的问题!急!顺便谢谢水中花大虾!
但我编译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);
}
}
作者:
snow888
时间:
2005-11-05 12:45
用 grep 找到包含文件就可以了.
在目录 /usr/include 下面,可能还包含子目录.
作者:
lylouie
时间:
2005-11-05 12:50
标题:
找哪个文件呢?
socklen_t只是个定义符!为什么这个程序别人可以用呢?
作者:
lylouie
时间:
2005-11-05 12:53
标题:
我的是SCO 5。0。5
大虾能否说具体点啊!
作者:
donkey
时间:
2005-11-05 13:01
socklen_t 改成 int
作者:
lylouie
时间:
2005-11-05 13:03
标题:
你高!
我试试看!
作者:
lylouie
时间:
2005-11-05 13:15
标题:
可以是可以编译了!
但不知编译的文件能不能正常执行!另外socklen_t到底在哪个文件中定义,还希望大虾继续明示。再另外,谁有CC的中文资料,我也想多看看,也不能老麻烦大家啊!
作者:
renstone921
时间:
2005-11-05 13:52
你用的是sco吗?它上面不一定有socklen_t的。
socklen_t是一个至少32为的值,系统遵循不同的posix标准,有可能没有socklen_t,如果你非要用的话。可以typedef int socklen_t;
作者:
hotness28
时间:
2005-11-05 14:09
socklen_t len = sizeof(client_address);
能在程序中声明变量吗?傻鸟
作者:
hotness28
时间:
2005-11-05 14:11
在unistd.h中有定义
作者:
renstone921
时间:
2005-11-05 14:29
原帖由
hotness28
于 2005-11-5 14:09 发表
socklen_t len = sizeof(client_address);
能在程序中声明变量吗?傻鸟
睁大眼睛看看,那是个复合语句.上面那两个字我就不说了.
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2