VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 690|回复: 1

关于网络!

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-2-12 11:00:01 | 显示全部楼层 |阅读模式
下面是这个程序的connect函数为什么一直都不成功呢?
我怀疑是struct sockaddr_in sa这个参数传递错误,麻烦哪位大哥帮一下忙。上面压得很紧阿。
BOOL IP100ComSendToNet(const unsigned char *IpAddr,const unsigned char *DataBuf)
{       
    struct sockaddr_in sa;
   unsigned int ret;
   SOCKET socketId;
    int status;
       
    IP100ComIpAdrStringToData(IpAddr,&ret);
               
    sa.sin_family=AF_INET;
    sa.sin_port=htons(9000);

    sa.sin_addr.S_un.S_addr = htons(ret);
       
        socketId=socket(AF_INET, SOCK_DGRAM,0);


        if(socketId == ERROR)
        printf("socket fail:%d\n", ERROR);

        if(ret != ERROR)
        {
        if(connect(socketId,(struct sockaddr_in *) &sa, sizeof(sa)) == ERROR)
          //if(connect(socketId,(const struct sockaddr FAR*) &sa, sizeof(sa)) == ERROR)
            printf("send fail:%d\n", ERROR);
            else
            {
            printf("send success:%d\n", OK);
            status = send(socketId, DataBuf, strlen(DataBuf), 0);//MSG_DONTWAIT);
            }
        }
       
        close(socketId);

    return OK;
}
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-4-8 17:00:02 | 显示全部楼层
sa.sin_addr.S_un.S_addr = htons(ret); 有问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表