C中的线程; Tcp聊天程序

时间:2015-01-30 22:49:44

标签: c multithreading chat

我正在研究InfoSec,4周前我们需要编写一个可以通过tcp在2台PC之间进行通信的小工具。我现在有假期,我想用 是时候将这个小东西构建到聊天程序中了。

我很确定我需要Threads,因为我需要倾听 始终收到消息,recvfrom阻止我发送消息 正在等待新消息。

所以我的想法,我需要2个单独的线程,一个听,一个发送,所以我有这个"实时聊天的感觉"。

我已经阅读了这三篇文章The Geek Stuff Thread Tutorial,但它并没有让我到任何地方。我有问题找到这个问题的好解释 我真的很想自己做,因为我真的非常兴奋 第一次产生有用的东西。

你们知道C-Tutorials有什么好的链接吗? 抱歉我的英语不好,我现在真的很累。

编辑: 我刚刚看到它被认为是关于在这里要求非现场资源的主题。

我目前遇到的具体问题是,我不确定如何实现一个除了调用recvfrom并将收到的消息放入std.out并继续侦听之外什么都不做的线程。我已经有了这段代码:

    while(loop){
        /* ~~ RECVFROM ~~ */
        printf(YELLOW"@"COLOR_RESET"Waiting for Client-Message!\n");
        sizer = recvfrom(udpsocket,msg,512,0,(struct sockaddr*) &destaddr,&addrsize);
        if(sizer==-1){
                perror("recvfrom");
                return 0;
        }else{
                printf(GREEN">%s\n"COLOR_RESET,msg);
        }
        /* ~~ ~~~~~~~~ ~~*/
    if((*(msg)=='-')&&(*(msg+1)=='x')){
        loop=0;
    }
    memset(msg,'\0',512);
}

我需要一些帮助将它放入一个线程我可以查找其他所有内容,我只需要一些帮助即可开始。

提前谢谢大家!

1 个答案:

答案 0 :(得分:0)

这是a complete manual !如果你真的需要使用线程,我希望这对我有帮助。