C中的线程; Tcp聊天程序

Threads in C; Tcp Chat Programm

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

我很确定我需要线程,因为我需要听 一直收到消息,recvfrom 阻止我发送消息 在等待新消息时。

所以我的想法是我需要 2 个单独的线程,一个用于监听,一个用于发送,所以我有这个 "realtime chat feeling"。

我已经阅读了这 3 篇文章 The Geek Stuff Thread Tutorial,但它对我没有任何帮助。我很难找到对此事的良好解释 我真的很想自己做,因为我真的很兴奋 第一次做出有用的东西。

你们知道任何好的 C 教程链接吗? 抱歉我的英语不好,我现在真的很累。

编辑: 我刚刚看到在这里请求站外资源被认为是题外话。

我目前遇到的具体问题是我不确定如何实现一个线程,该线程除了调用 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,'[=10=]',512);
}

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

提前谢谢大家!

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