
c++多线程socket服务器端发数据
RT,unsigned__stdcallthread(void*){//m_TEMP=open_TEMP_Com();//temprature_send(m_TEMP);...
RT,
unsigned __stdcall thread(void*)
{
//m_TEMP = open_TEMP_Com();
//temprature_send(m_TEMP);
//Sleep(5000);
cout <<"In second thread..." <<endl;
while (!stop_thr){
//m_TEMP = open_TEMP_Com();
//temprature_send(m_TEMP);
Sleep(1000);
cout <<Count++ <<" " <<flush;
char* sendData_t = "The Second Thread!";
send(sClient_t, sendData_t, strlen(sendData_t), 0);
}
return 0;
}
以上为我的测试程序,功能是每隔一秒输出1个数,同时向客户端发送数据。
我在服务器端除了主线程(主线程内也需要发送和接收数据)外,还想开辟一个线程(上面的函数),用于向客户端实时的发送当前的温度数据,
在主函数运行后,输出数的功能实现了,发送的功能没有实现,(只是这里的发送没有实现,客户端可以接收到主线程发送的数据,接收不到这里的发送的这个字符串。)
刚开始接触多线程,上面的程序也是由别人的改的,希望各位不吝赐教,多谢!
另:如果有别的实现功能的方法,求大神给个指导啊!!
main()里面的socket通信部分代码: 展开
unsigned __stdcall thread(void*)
{
//m_TEMP = open_TEMP_Com();
//temprature_send(m_TEMP);
//Sleep(5000);
cout <<"In second thread..." <<endl;
while (!stop_thr){
//m_TEMP = open_TEMP_Com();
//temprature_send(m_TEMP);
Sleep(1000);
cout <<Count++ <<" " <<flush;
char* sendData_t = "The Second Thread!";
send(sClient_t, sendData_t, strlen(sendData_t), 0);
}
return 0;
}
以上为我的测试程序,功能是每隔一秒输出1个数,同时向客户端发送数据。
我在服务器端除了主线程(主线程内也需要发送和接收数据)外,还想开辟一个线程(上面的函数),用于向客户端实时的发送当前的温度数据,
在主函数运行后,输出数的功能实现了,发送的功能没有实现,(只是这里的发送没有实现,客户端可以接收到主线程发送的数据,接收不到这里的发送的这个字符串。)
刚开始接触多线程,上面的程序也是由别人的改的,希望各位不吝赐教,多谢!
另:如果有别的实现功能的方法,求大神给个指导啊!!
main()里面的socket通信部分代码: 展开
若以下回答无法解决问题,邀请你更新回答
1个回答
2014-11-29
展开全部
介意不介意把两个项目的工程加上功能说明打包发一下?1248389385@qq.com(现在很晚了,白天有时间)
不然你自己在发送的地方打断点,看看返回什么信息;
如果确定发送没有问题,再看看接收端。
不然你自己在发送的地方打断点,看看返回什么信息;
如果确定发送没有问题,再看看接收端。
更多追问追答
追问
工程文件真的不方便发,想请教您一下,现在我在第二个线程里面只用了一个send函数,感觉这样要发出去的话可能需要用到主线程定义的端口什么的,是不是线程之间的这种调用不能实现啊?两个线程里面都有socket通信的话,是不是我还要在第二个线程里面重新创建新的socket通信的套接字,blind、listen、accept这些东西是不是都要重新写,还是只在主线程里面就够了?
追答
多线程可以共享一个socket,另外好像同一个ip和同一个端口不可以同时被监听,你想象一下如果两个程序同时监听一个端口成功的话,别的程序给这个端口发送数据,ip层都不知道传给谁了。
我刚在网上随便找个简单的TCP例子,在SERVER端多开一个循环发送数据的线程,CLIENT端接收数据很正常,全部都能收到。
你在你server端多开的线程里send打断点或者打印日志,看看发送成功没有?
确保发送成功的话,那就看看client端接收的地方,看他是否一直在等待接收。
光看你给的一个send线程和主线程接收代码,我暂时看不出问题。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询