雷达 tcp ip socket c++

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了雷达 tcp ip socket c++相关的知识,希望对你有一定的参考价值。

我要通过tcp/ip建立与雷达间的通信,简单说就是自己写客户端程序,与雷达通信,但是一般tcp/ip的通信都是有客户端/服务器模式,那么雷达作为服务器话,我必须先建立与雷达间的连接,才能正常通信,不然程序就会闪退,我是用connect(sockfd, (struct sockaddr *) &address, len);语句的,但是这条语句与雷达一直连接连接不上,而
Hercules SETUP这个软件就能确认建立了连接,我知道雷达的ip和开放的端口号,那么怎样成功建立连接呢,并通信呢?谁有上面这个软件的源码也号,请各位帮忙了。。。

参考技术A 一般的Socket通讯而已,例子请百度百度 参考技术B 私信我,给你讲~~~本回答被提问者采纳

C++ Socket学习记录 -1

1、IP的转换

  1)正转换  

    结构 sockaddr_in 在C++ 中表明一个IP地址结构,包含地址家,端口以及IP地址等信息

    如:

    sockaddr_in addr;
    addr.sin_family = AF_INET;    //指定地址家族 AF_INET 表明是TCP/IP 协议
        addr.sin_port = htons(1230);    //指定端口

    //在设置地址时,需要将点十进制地址转换为网络直接顺序

    //在较早时使用函数 inet_addr 进行转换

    //较新版本中,可以使用新函数 inet_pton 进行转换:

    int rnum = inet_pton(AF_INET,"127.0.0.1", &addr.sin_addr);

    使用 inet_pton 转化时,第一个参数为地址族,第二个参数为欲转换的点十进制IP,转换结果保存在第三个参数中,返回值 rnum ,转换成功时返回一个正数。

    if (rnum > 0 )

    {

      Printf ("转换成功!");

    }

  2)逆转换

    也可以将网络字节顺序反转化为点十进制地址

    使用函数 inet_ntop

    char ipStr[20];

    inet_ntop(AF_INET,(void*)&addr.sin_addr,ipStr,sizeof(addr));

    将转化结果保存到 ipStr (为 char* 也就是字符串)中。

2、套接字 socket 的绑定

   1)创建套接字

    CSocket Sokt;

   2)套接字的绑定

    创建套接字后,需要将其绑定到特定的IP及端口,才能使用该套接字。

    套接字的绑定 BOOL Sokt.Bind((SOCKADDR*)lpAddr,int len)

    其中 lpAddr 为地址结构(类型为 SOCKADDR*),len 为地址结构长度

    则地址绑定可以写为

    Sokt.Bind((SOCKADDR*)addr,sizeof(addr));

    注:

      在绑定中 SOCKADDR 也表示地址结构,它与 sockaddr_in 的区别在于,sockaaddr_in 用于储存地址信息,而 SOCKADDR 是在使用过程中的类型(如函数传递时的参数),至于为什么这么设计,战术还没弄明白……感觉挺闹心的,在传递参数时直接将 sockaaddr_in 转换为 SOCKADDR即可。

   3)监听和链接

     在套接字绑定到特定IP和端口后,对于

     服务器端,需要使用 Listen 进行监听;客户端 则可以 使用Connect 链接服务器

     //服务器监听

     Sokt.Listen(5); //参数 5 表示同时监听的链接数,取值范围 1~5,,默认为 5

     //客户端链接

     Sokt.Connect((SOCKADDR*)&addr, sizeof(addr))

这样,客户端与服务器之间的链接就建立了,接下来需要做的就是怎么样在服务端与客户端通信(数据的传输)

以上是关于雷达 tcp ip socket c++的主要内容,如果未能解决你的问题,请参考以下文章

ROS2学习笔记18-velodyne 16雷达点云在ros2中可视化案例参考

C++基于TCP和UDP的socket通信

C++语言实现网络聊天程序的设计与实现(基于TCP/IP协议的SOCKET编程)超详细(代码+解析)

激光雷达点云数据处理相关算法库收集

SICK LMS111激光雷达的使用

汽车激光雷达有啥用?激光雷达和毫米波雷达的区别