我正在研究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);
}
我需要一些帮助将它放入一个线程我可以查找其他所有内容,我只需要一些帮助即可开始。
提前谢谢大家!