多线程编程,编译时提示invalid use of member (did you forget the &),找不到原因。

phz1985 phz1985 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

#include "igrs.h"

//Singlecast Message Server.
void CDevice::SingleMsgServer(string strHost, unsigned uPort)
{
struct sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
inet_aton(strHost.c_str(), &addr.sin_addr);
addr.sin_port = htons(uPort);
int s = socket(AF_INET, SOCK_STREAM, 0);
if (s < 0)
{
perror("socket error in SingleMsgServer\n");
return ;
}
if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) < 0)
{
perror("bind error in SingleMsgServer\n");
return ;
}
if (listen(s, LISTEN_MAX_NUM) < 0)
{
perror("listen error in SingleMsgServer\n");
return ;
}
struct sockaddr_in clientAddr;
socklen_t len;
pthread_t th;
for (;;)
{
int newS = accept(s, (struct sockaddr *)&clientAddr, &len);
if (newS < 0)
{
perror("accept error in SingleMsgServer.\n");
}
//create a thread which runs handleSingleMsg to handle the new connect.
//错误在这一行
if (pthread_create(&th, NULL, (void *(*)(void *))HandleSingleMsg, (void *)&newS) < 0)
{
perror("pthread_create error in SingleMsgServer.\n");
}
}
}

//When SingleMsgServer accepts a connect request,
//HandleSingleMsg handles the connect as a thread.
void CDevice::HandleSingleMsg(int fd)
{
int n;
char tmp[BUF_MAX_SIZE];
for (;;)
{
if ((n = recv(fd, tmp, BUF_MAX_SIZE, 0)) < 0)
{
perror("recv error in SingleMsgServer.\n");
}
else
{
tmp[n] = '\0';
string ackMsg = MsgResolver(tmp);
//if gotten message is request message, then send response message.
if (!ackMsg.empty())
{
if (send(fd, ackMsg.c_str(), ackMsg.size(), 0) < 0)
{
perror("send error in SingleMsgServer.\n");
}
}
}
}
}




# g++ -c single_msg_server.cpp
single_msg_server.cpp: In member function ‘void CDevice::SingleMsgServer(std::string, unsigned int)’:
single_msg_server.cpp:38: 错误:invalid use of member (did you forget the ‘&’ ?)
使用的编译是g++.
...全文

相关推荐

idea 找不到符号或找不到包的几种解决方法

主要介绍了idea 找不到符号或找不到包的几种解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

weixin_38643212

IntelliJ IDEA 报错:找不到包或者找不到符号的问题及解决方案

主要介绍了IntelliJ IDEA 报错:找不到包或者找不到符号的问题及解决方案,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

weixin_38724349

解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题

今天小编就为大家分享一篇解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

weixin_38709312

删除文件:提示找不到该项目

win7系统上文件删除不了,删除的时候弹出提示“找不到该项目”,该资源就可以有效的出来此问题,快速的删除此文件。

活在生活里

解决idea使用maven编译正常但是运行项目时却提示很多jar包找不到的问题

主要介绍了解决idea使用maven编译正常但是运行项目时却提示很多jar包找不到的问题,本文分多种情形给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

weixin_38660802
评论 6
收藏 已收藏
分享
返回顶部
phz1985
Linux/Unix社区 23,224 成员 74,535 内容