基本上我有两个我希望并行运行的套接字,所以我不必等待一个套接字发送数据来接收来自其他套接字的数据。 我可以通过分叉轻松地做到这一点,但是,为了更整洁,我想知道是否有办法从同一个过程中做到这一点。
类似的东西:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void test(){
sleep(5000);
}
int main(int argc, char *argv[])
{
printf("%d\n",time(NULL));
test();
printf("%d\n",time(NULL));
system("PAUSE");
return 0;
}
但两条输出线都是相同的,因为睡眠功能正在“其他地方”进行处理。
我找到了一个关于创建线程的MSDN文档,但是它谈到了C库函数不安全,这让我很担心,我喜欢我的stdlib!
所以,是的,如果你有任何例子,你可以使用sleep()作为占位符,我对套接字很好:)我在Windows上,但是Unix版本也会很好,或者更好的是,一个适用于两者的。
编辑:感谢您的所有回复。 我想我明白了你的意思:我有两个套接字,然后我调用select(),它返回所有准备接收/发送数据的套接字,我发送/接收我的数据,然后循环回来。 但是,我怎么能用accept()来实现它,因为尚未创建套接字?