您的位置:首页 > 编程语言 > PHP开发

OTPServer项目采集信息小结

2016-11-01 19:17 260 查看
/**
* 单独的线程处理来自于客户端的连接
* @param arg {void*} 添加任务时的对象
*/
//static void echo_client_thread(void *arg)
DWORD WINAPI myThread(LPVOID pM)
{
//ACL_VSTREAM *client = (ACL_VSTREAM*) arg;

//Arg *pt = (Arg *)pM;
//Arg *pt = (Arg *)malloc(sizeof(Arg));
//
//memcpy(pt, (Arg *)pM, sizeof(Arg));

Arg pt;
memcpy(&pt, (Arg *)pM, sizeof(Arg));

char  buf[13] = {0};
int   n;
char ip[14] = {0};
findIP(ip, sizeof(ip));
//printf("ip地址为:%s\n", ip);

/* 设置客户端流的读超时时间为30秒 */
//ACL_VSTREAM_SET_RWTIMO(pt->client, 30);
/* 循环读客户端的数据,直到其关闭或出错或超时 */
while (1) {

/n = acl_vstream_fprintf(pt->client, pt->client_no, 4);
//	n = acl_vstream_writen(pt->client, pt->client_no, 4);
//printf("第一次向服务器发送一行数据:%s\n", pt.client_no);
printf("pt.client_no = %s", pt.client_no);
//printf("子线程的线程ID号为:%d\n子线程输出Hello World\n", GetCurrentThreadId());
//if(n == ACL_VSTREAM_EOF)
//break;

/* 从服务器读取一行数据 */
//n == acl_vstream_gets(pt->client, buf, 10);
n == acl_vstream_read(pt->client, buf, 13);
printf("从服务器读取一行数据为:%s长度为:%d\n", buf, sizeof(buf));
if(n == ACL_VSTREAM_EOF)
break;

}

/* 关闭客户端流 */
//acl_vstream_close(pt->client);
return n;
}


导出为C语言函数

#ifdef __cplusplus

extern "C" {

#endif

...

...

#ifdef __cplusplus

}

#endif

OutputDebugString

功能:发送一个字串到调试器的显示。

函数原型:void WINAPI OutputDebugString( LPCTSTR lpOutputString );

头文件:<windows.h>     

 一.最简单的用法    

    #define MAX_DBG_MSG_LEN (1024)        

    char msgbuf[MAX_DBG_MSG_LEN];    

    sprintf(msgbuf, "LastError=%ld/n", GetLastError());
    OutputDebugString(msgbuf);   

总结:1.创建新的线程时,一定要注意局部变量重新开辟新的空间。

    
    2.忽略MSVCRT、MSVCRTD等,保留libcd、libcmt、libcmtd,使生成的.exe在其他电脑上也能运行。

    
    3.linux下静态编译-static-libgcc。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐