免费注册 查看新帖 |

Chinaunix

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

solaris11 x86 的UDP编程问题(在线等) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-25 20:42 |只看该作者 |倒序浏览
[root@Solaris11 udp]#gcc -Wall -o udpserv udpserv.c\r\nudpserv.c: In function `main\':\r\nudpserv.c:57: warning: implicit declaration of function `bzero\'\r\n未定义                  文件中的\r\n 符号                       在文件中\r\nbind                                /var/tmp//cciWaWSb.o\r\nsendto                              /var/tmp//cciWaWSb.o\r\nsocket                              /var/tmp//cciWaWSb.o\r\nrecvfrom                            /var/tmp//cciWaWSb.o\r\nld: 致命的: 符号参照错误. 没有输出被写入udpserv\r\ncollect2: ld returned 1 exit status\r\n[root@Solaris11 udp]#gcc -Wall -o udpclient udpclient.c\r\nudpclient.c: In function `main\':\r\nudpclient.c:55: warning: implicit declaration of function `bzero\'\r\n未定义                  文件中的\r\n 符号                       在文件中\r\nsocket                              /var/tmp//ccicayTb.o\r\nconnect                             /var/tmp//ccicayTb.o\r\ninet_pton                           /var/tmp//ccicayTb.o\r\nld: 致命的: 符号参照错误. 没有输出被写入udpclient\r\ncollect2: ld returned 1 exit status\r\n[root@Solaris11 udp]#\r\n\r\n头文件如下:\r\n\r\n#include <sys/types.h>\r\n#include <sys/socket.h>\r\n#include <string.h>\r\n#include <netinet/in.h>\r\n#include <stdio.h>\r\n#include <stdlib.h>\r\n#include <sys/socket_impl.h>\r\n\r\n请高手指教

论坛徽章:
0
2 [报告]
发表于 2007-06-25 20:45 |只看该作者
在opensolaris中有定义的\r\n有些文件加不上去,提示说 没有这个文件或目录\r\n如:\r\n   #include <netinet/ip.h>\r\n     #include <netinet/udp.h>

论坛徽章:
0
3 [报告]
发表于 2007-06-25 20:58 |只看该作者
代码是用网上的:\r\n#include <sys/types.h>\r\n#include <sys/socket.h>\r\n#include <string.h>\r\n#include <netinet/in.h>\r\n#include <stdio.h>\r\n#include <stdlib.h>\r\n\r\n#define MAXLINE 80\r\n#define SERV_PORT 8888\r\n\r\nvoid do_echo(int sockfd, struct sockaddr *pcliaddr, socklen_t clilen)\r\n{\r\nint n;\r\nsocklen_t len;\r\nchar mesg[MAXLINE];\r\n\r\nfor(;\r\n{\r\nlen = clilen;\r\n/* waiting for receive data */\r\nn = recvfrom(sockfd, mesg, MAXLINE, 0, pcliaddr, &len);\r\n/* sent data back to client */\r\nsendto(sockfd, mesg, n, 0, pcliaddr, len);\r\n}\r\n}\r\n\r\nint main(void)\r\n{\r\nint sockfd;\r\nstruct sockaddr_in servaddr, cliaddr;\r\n\r\nsockfd = socket(AF_INET, SOCK_DGRAM, 0); /* create a socket */\r\n\r\n/* init servaddr */\r\nbzero(&servaddr, sizeof(servaddr));\r\nservaddr.sin_family = AF_INET;\r\nservaddr.sin_addr.s_addr = htonl(INADDR_ANY);\r\nservaddr.sin_port = htons(SERV_PORT);\r\n\r\n/* bind address and port to socket */\r\nif(bind(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) == -1)\r\n{\r\nperror(\"bind error\";\r\nexit(1);\r\n}\r\n\r\ndo_echo(sockfd, (struct sockaddr *)&cliaddr, sizeof(cliaddr));\r\n\r\nreturn 0;\r\n}

论坛徽章:
0
4 [报告]
发表于 2007-06-25 22:01 |只看该作者
编译的时候加上-lnsl -lsocket这两个选项

论坛徽章:
0
5 [报告]
发表于 2007-06-26 15:38 |只看该作者
首先\r\n感谢你的回复\r\n在麻烦一下\r\n\r\n我按照你说的做了\r\nlsnl库找不到,只加-lsocket项,则没错误,但运行没结果\r\n请指教\r\n[root@Solaris11 udp]#gcc -Wall -lsocket -lsnl -o  udpserv.out udpserv.c\r\nudpserv.c: In function `main\':\r\nudpserv.c:57: warning: implicit declaration of function `bzero\'\r\nld: 致命的: 库 -lsnl: 没有找到\r\nld: 致命的: 文件处理错误。无输出写到udpserv.out\r\ncollect2: ld returned 1 exit status\r\n[root@Solaris11 udp]#ls\r\nudpclient.c  udpserv.c\r\n[root@Solaris11 udp]#gcc -Wall -lsocket  -o  udpserv.out udpserv.c\r\nudpserv.c: In function `main\':\r\nudpserv.c:57: warning: implicit declaration of function `bzero\'\r\n[root@Solaris11 udp]#ls\r\nudpclient.c  udpserv.c  udpserv.out\r\n[root@Solaris11 udp]#./udpserv.out

论坛徽章:
0
6 [报告]
发表于 2007-06-26 19:39 |只看该作者
请注意拼写,是-lnsl而不是-lsnl
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP