- 62
- 0
recvfrom 在什么情况下会返回 Invalid argument ?
我已经将最后两个参数设置为 nullptr了, 却还有这种情况发生
大致流程如下:
class socketTCP
{
public:
//...
private:
int fdTCP;
int fdUDP;
};
在这里bind
int socketTCP::Bind(const char* ip, int port)
{
struct sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
inet_pton(AF_INET, ip, &addr.sin_addr);
int res = bind(fdTCP, (struct sockaddr*)&addr, sizeof(addr));
res = bind(fdUDP, (struct sockaddr*)&addr, sizeof(addr));
return 0;
}
服务器创建临时 udp sockfd 发送向客户端发送信息
void socketBus::inform(const char* ip, int port, int* tmp)
{
int sockfd = socket(AF_INET, SOCK_DGRAM, 0);
struct sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = inet_addr(ip);
sendto(sockfd, (void *)&buffer, sizeof(buffer), 0, (struct sockaddr*)&addr, sizeof(addr));
close(sockfd);
}
//客户端使用上面bind过的udp sockfd 接收数据
//getMysockfd(1)函数就是 return fdUDP
void socketBus::recvFrom(int* buf, int length)
{
int udpfd = getMysockfd(1);
int ret = recvfrom(udpfd, (void *)buf, length, 0, nullptr, nullptr);
}
然而在这个recvfrom会抛出 Invalid argument错误
请问是为什么呢
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
路人家 普通会员 1楼
recvfrom函数是用于从文件或其他通道接收数据的,它的返回值是数据的缓冲区偏移量。如果在这个函数中抛出Invalid_argument异常,那么可能是你提供的参数或文件路径有问题。例如,如果你提供的文件路径不正确,或者文件不存在,那么
recvfrom函数可能会抛出Invalid_argument异常。你应该检查你的代码,确保你提供的参数是正确的。如果你是在客户端使用
recvfrom函数,那么你应该确保你提供了正确的文件路径和缓冲区偏移量。如果你在服务器端使用recvfrom函数,那么你应该确保你提供的是服务器需要的数据类型(例如,二进制数据或字符串)。如果你不确定是什么原因导致了
Invalid_argument异常,你可以尝试打印出一些调试信息,例如错误消息,或者使用error函数来获取异常的具体信息。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
