免费注册 查看新帖 |

Chinaunix

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

solaris11 x86 的UDP编程问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-27 09:22 |只看该作者 |倒序浏览
[root@Solaris11 udp]#gcc -Wall -o udpserv udpserv.c
udpserv.c: In function `main\':
udpserv.c:57: warning: implicit declaration of function `bzero\'
未定义                  文件中的
符号                       在文件中
bind                                /var/tmp//cciWaWSb.o
sendto                              /var/tmp//cciWaWSb.o
socket                              /var/tmp//cciWaWSb.o
recvfrom                            /var/tmp//cciWaWSb.o
ld: 致命的: 符号参照错误. 没有输出被写入udpserv
collect2: ld returned 1 exit status
[root@Solaris11 udp]#gcc -Wall -o udpclient udpclient.c
udpclient.c: In function `main\':
udpclient.c:55: warning: implicit declaration of function `bzero\'
未定义                  文件中的
符号                       在文件中
socket                              /var/tmp//ccicayTb.o
connect                             /var/tmp//ccicayTb.o
inet_pton                           /var/tmp//ccicayTb.o
ld: 致命的: 符号参照错误. 没有输出被写入udpclient
collect2: ld returned 1 exit status
[root@Solaris11 udp]#

头文件如下:

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

请高手指教

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

论坛徽章:
0
3 [报告]
发表于 2007-06-27 09:23 |只看该作者
代码是用网上的:
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>

#define MAXLINE 80
#define SERV_PORT 8888

void do_echo(int sockfd, struct sockaddr *pcliaddr, socklen_t clilen)
{
int n;
socklen_t len;
char mesg[MAXLINE];

for(;
{
len = clilen;
/* waiting for receive data */
n = recvfrom(sockfd, mesg, MAXLINE, 0, pcliaddr, &len);
/* sent data back to client */
sendto(sockfd, mesg, n, 0, pcliaddr, len);
}
}

int main(void)
{
int sockfd;
struct sockaddr_in servaddr, cliaddr;

sockfd = socket(AF_INET, SOCK_DGRAM, 0); /* create a socket */

/* init servaddr */
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(SERV_PORT);

/* bind address and port to socket */
if(bind(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) == -1)
{
perror(\"bind error\";
exit(1);
}

do_echo(sockfd, (struct sockaddr *)&cliaddr, sizeof(cliaddr));

return 0;
}

论坛徽章:
0
4 [报告]
发表于 2007-08-21 19:34 |只看该作者
此帖已收集到主题列表:lovely:
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP