在socket中查询wrt sendto函数

时间:2014-02-11 05:07:30

标签: c sockets linux-device-driver

我正在使用以下API。

sendto(dw_SockHdler,b_TxBuff, strlen(b_TxBuff), 0,
              (struct sockaddr *)&server_addr, sizeof(struct sockaddr));

b_TxBuff必须强制声明为char。

我浏览了api指南。它似乎是一个“const void ”所以基本上我可以强制转换,但这不允许我给出错误。

是否有一个解决方法,以便我可以灵活地将unsigned char buff传递给此API。

2 个答案:

答案 0 :(得分:1)

你没有必须“对void*进行类型转换,我认为这就是你的意思。”您必须将char buff[] 标记为 void * ...但是您在char *中已包含buff的任何指针都可以自动转换到void *而不需要明确的演员。

答案 1 :(得分:-1)

我得到了解决方法......请确认是否正确的方法,

  1. 声明unsigned char buff [] = {'\ 0'};
  2. 声明void * ptr = NULL;
  3. 为指针分配缓冲区的基址。 ptr = buff;
  4. 将ptr传递给函数

    sendto(dw_SockHdler,ptr,100,0,               (struct sockaddr *)& server_addr,sizeof(struct sockaddr));

  5. 请确认是否有任何进一步的修改