免费注册 查看新帖 |

Chinaunix

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

64位程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-23 10:25 |只看该作者 |倒序浏览
各位老大们帮忙看下,下面这段代码我在32位上编译后,执行正常的,但是移到64位下编译后,运行时就出现浮点数错误,请教下各位,谢谢。


代码如下:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <time.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>


int main()
{
        char * srvr_addr = "127.0.0.23";
        int srvr_port = 9099;
        struct sockaddr_in adr_srvr;
        struct sockaddr_in adr_clnt;
        char * buf = "this is server";

        int s = socket(PF_INET, SOCK_STREAM, 0);
        if(-1 == s)
                perror("socket error\n");

        memset(&adr_srvr, 0, sizeof(adr_srvr));
        adr_srvr.sin_family = AF_INET;
        adr_srvr.sin_port = htons(srvr_port);
        adr_srvr.sin_addr.s_addr = inet_addr(srvr_addr);

        int z = bind(s, (struct sockaddr *)&adr_srvr, sizeof(adr_srvr));
        if(-1 == z)
                perror("bind error\n");

        int l = listen(s, 10);
        if(-1 == l)
                perror("listen error\n");

        while(1)
        {
                int len = sizeof(adr_clnt);
                int c = accept(s, (struct sockaddr *)&adr_clnt, &len);
                if(-1 == c)
                        perror("accept error\n");

                int w = write(c, buf, 20);
                printf("send to client ::: %s, %d cha\n", buf, w);
                printf("lient addr ::: %s\n", inet_ntoa(adr_srvr.sin_addr));

                close(c);
        }
        return 0;
}


各位帮忙看看,谢谢了。为什么会出错呢,要怎么改才能可以正确运行呢,谢谢了大家!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP