心得话聊
2015-05-29 17:21
183 查看
折腾了一周,,断断续续地试着了解gloox的内容。这个开源库,完全把xmpp协议的流程给封装写好了,当然用来通信的socket也是被包装过。我看了,可能底子不好,c++缺乏少点基础知识,尝试去恶补了下。然后去读代码的是时候完全是一大块一大块的看的(一些细的语法点不太懂,唉。),网上会有人给出一些解析和本身库例子也有注释,然后我也是跟着一模块一条注释,大概的功能,,然后我就试着去改里面的东西,发现无从下手,想重新写,发现水平还没好,然后就从例子下手,在修改信息发送接受时,例子中的客户端可以具有发送数据和循环接受数据的能力。如同网上的一些疑问,我也把这个疑问写在这里:这种的设计模式使receive处于一个无限的while循环,不断的调用select+accept或者select+receive,是否利于send之类的方法在同一个socket上发送数据?
后来我想用多线程的办法试着把send和recv分开,单独作为一个线程。然后就出现了一些列语法问题,,待我慢慢去了解c++时,才发现有点死板,应该是兼容了C的缘故。一定要按顺序把格式写下来的。比如说一旦把声明的函数放到下边,标识符就会找不到等。。
我其中的一个代码,但会卡段,应该是循环调到循环里去了。。唉
子线程函数:
bool sd = true;
unsigned int __stdcall ThreadFun(PVOID pM)
{
MessageTest *r = new MessageTest();
char he[20];
cin.getline(he, 20);
if (sd)
{
sd = false;
r->start();
cout << he << endl;
return 0;
}
主函数:
int main(int /*argc*/, char** /*argv*/)
{
const int THREAD_NUM = 10;
HANDLE handle[THREAD_NUM];
for (int i = 0; i < THREAD_NUM; i++)
handle[i] = (HANDLE)_beginthreadex(NULL, 0, ThreadFun, NULL, 0, NULL);
WaitForMultipleObjects(THREAD_NUM, handle, TRUE, INFINITE);
return 0;
}
再看看,顺便再了解下c++,继续学习,无涯之路。
后来我想用多线程的办法试着把send和recv分开,单独作为一个线程。然后就出现了一些列语法问题,,待我慢慢去了解c++时,才发现有点死板,应该是兼容了C的缘故。一定要按顺序把格式写下来的。比如说一旦把声明的函数放到下边,标识符就会找不到等。。
我其中的一个代码,但会卡段,应该是循环调到循环里去了。。唉
子线程函数:
bool sd = true;
unsigned int __stdcall ThreadFun(PVOID pM)
{
MessageTest *r = new MessageTest();
char he[20];
cin.getline(he, 20);
if (sd)
{
sd = false;
r->start();
cout << he << endl;
return 0;
}
主函数:
int main(int /*argc*/, char** /*argv*/)
{
const int THREAD_NUM = 10;
HANDLE handle[THREAD_NUM];
for (int i = 0; i < THREAD_NUM; i++)
handle[i] = (HANDLE)_beginthreadex(NULL, 0, ThreadFun, NULL, 0, NULL);
WaitForMultipleObjects(THREAD_NUM, handle, TRUE, INFINITE);
return 0;
}
再看看,顺便再了解下c++,继续学习,无涯之路。
相关文章推荐
- 《Java程序设计》第一次作业:源代码计算器
- kivy chapter1~chapter3
- hadoop源码剖析--hdfs安全模式
- scanf() scanf_s() 区别
- JAVA作业—从命令行输入两个参数打开文件并计算代码行数 .
- .NET 4.0下使用 SignalR (2)
- JavaScript UserAgent判断---摘自Professional JavaScript for Web Developers 3rd
- ASM(active shape model)算法简介(一)
- Java编程思想之-匿名内部类
- OpenDaylight学习 ( by quqi99 )
- Node.js 函数
- Node.js 路由
- 自动填充英文字母序列
- 第一次提交代码到github时经常遇到的问题
- 【leetcode】Sqrt(x)
- Solr查询query效果对比
- Tomcat 7最大并发连接数的正确修改方法
- JavaSE之面向对象
- 如何使用NetScaler实现http页面跳转https
- 第一次作业:源代码计算器 学习流程