gpt4 book ai didi

c - 程序中的两个主电源

转载 作者:太空宇宙 更新时间:2023-11-04 06:41:54 24 4
gpt4 key购买 nike

情况是这样的:我需要向邻居(套接字)发送数据,然后切换到监听模式。我在 client.c 中有一个客户端部分,它只是监听,而在 server.c 中有一个服务器部分 - 发送数据。使用套接字我需要在它们中都有一个 main() 。我应该如何让它们“合作”在一起,这样两个 mains 就不会导致错误?

或者任何其他想法如何通过发送和监听来解决这个问题?

提前致谢!

卢卡斯

最佳答案

您始终可以从源代码创建两个可执行文件。他们每个人都有自己的 main

或者,您可以创建单个可执行文件并让它fork 另一个进程或创建另一个线程。创建新线程时,您将指定第二个“main”作为线程函数。

fork 时,你应该创建两个函数 main_servermain_client 并让实际的 main 决定在 fork 之后调用它们中的哪一个。见片段:

int main_server(int argc, int argv){
//TODO: complete
return 0;
}

int main_client(int argc, int argv){
//TODO: complete
return 0;
}

int main(int argc, int argv){
//TODO: parse args and get argv_server, argv_client, argc_server, argc_client
int pid = fork();
if (pid < 0) {
//TODO: handle error and leave
} else if (pid) {
// start client here for example
main_client(argc_client, argv_client);
} else {
main_server(argc_server, argv_server);
wait(pid);
}
return 0;
/* TODO: each of the above calls should be checked for errors */
}

希望对您有所帮助。

注意:最好创建一个单独的可执行文件,但如果您只需要一个,请使用上面的代码片段。

关于c - 程序中的两个主电源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6707806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com