免费注册 查看新帖 |

Chinaunix

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

高手请指教!先谢谢了 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-04-14 16:39 |只看该作者 |倒序浏览
我的服务器测试程序要实现客户端connect以后,send一串字符告诉客户端已连接,但是我编译以后,提示
undefined symbol :socket,bind,listen,accept,inet_ntoa,send
first referenced in file:serv.o
i386ld fatal:Symbol referencing errors.No output written to a.out
好像是说标识符未定义,搞不懂是什么原因,请各位高手指教,谢谢!

源程序(serv.c)
#define SERVER_PORT 3333
#define MAX_CONNECT 10
#include <stdio.h>;
#include <unistd.h>;         
#include <netdb.h>;         
#include <errno.h>;
#include <sys/ioctl.h>;
#include <signal.h>;
#include <sys/types.h>;      
#include <sys/socket.h>;     
#include <sys/netinet/in.h>;

main()
{
        int sHandle, cHandle, sin_size;
        struct sockaddr_in sAddress;
        struct sockaddr_in cAddress;
        if ((sHandle = socket(AF_INET, SOCK_STREAM, 0)) == -1)
        {
                printf("Socket error";
                exit(1);
        }
        sAddress.sin_family = AF_INET;
        sAddress.sin_port = SERVER_PORT;
        sAddress.sin_addr.s_addr = INADDR_ANY;
        memset(sAddress.sin_zero, 0, ;
        if (bind(sHandle, (struct sockaddr *)&sAddress, sizeof(struct sockaddr)) == -1)
        {
                printf("Bind error";
                exit(1);
        }
        if (listen(sHandle, MAX_CONNECT) == -1)
        {
                printf("Listen error";
                exit(1);
        }
        while (1)
        {
                sin_size = sizeof(struct sockaddr_in);
                if ((cHandle = accept(sHandle, (struct sockaddr *)&cAddress, &sin_size)) == -1)
                {
                        printf("Accept error";
                        continue;
                }
                printf("Received a connection from %s\n", inet_ntoa(cAddress.sin_addr));
                if (!fork())
                {
                        if (send(cHandle, "Hello,you are connected!\n", 26, 0) == -1)
                        {
                                printf("Send error";
                                close(cHandle);
                                exit(0);
                        }
                }       
                close(cHandle);
        }
}

论坛徽章:
0
2 [报告]
发表于 2004-04-14 16:42 |只看该作者

高手请指教!先谢谢了

-lsocket

论坛徽章:
0
3 [报告]
发表于 2004-04-14 17:04 |只看该作者

高手请指教!先谢谢了

请问什么意思?能说清楚点吗?

论坛徽章:
0
4 [报告]
发表于 2004-04-14 17:10 |只看该作者

高手请指教!先谢谢了

看一下gcc/g++的help和makefile的写法

论坛徽章:
0
5 [报告]
发表于 2004-04-14 17:17 |只看该作者

高手请指教!先谢谢了

你的意思是不是说我的程序没问题,而是编译方法不对,能具体一点吗?

论坛徽章:
0
6 [报告]
发表于 2004-04-14 17:41 |只看该作者

高手请指教!先谢谢了

编译的问题

论坛徽章:
0
7 [报告]
发表于 2004-04-14 17:47 |只看该作者

高手请指教!先谢谢了

请问正确的编译命令是什么?如果是在Sco Unix下面。谢谢!

论坛徽章:
0
8 [报告]
发表于 2004-04-14 19:15 |只看该作者

高手请指教!先谢谢了

gcc sock.c -lsocket -o sock

#include <sys/netinet/in.h>; 这个头文件我没见过,我在
solaris下用#include <netinet/in.h>; 调试通过过了

论坛徽章:
0
9 [报告]
发表于 2004-04-14 20:53 |只看该作者

高手请指教!先谢谢了

我的系统是Sco Unix,好像没有gcc,如果用cc编译,命令行应该怎么写呢?

论坛徽章:
0
10 [报告]
发表于 2004-04-14 20:59 |只看该作者

高手请指教!先谢谢了

[quote]原帖由 "avenlau"]我的系统是Sco Unix,好像没有gcc,如果用cc编译,命令行应该怎么写呢?[/quote 发表:


I 服了 YOU!

cc serv.c -lsocket -o serv
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP