【发布时间】:2013-10-20 23:09:16
【问题描述】:
我有一个理论上完成的非常简单的任务:一个使用 UDP 进行通信的聊天程序。实现我们想要的任何功能都取决于我们,我会尽力自己实现它们,但我似乎很难实现核心思想:一个既是服务器又是客户端的程序。
在我所见之处,我看到了两个用于 UDP 数据报交换的独立应用程序。它总是 client.c 和 server.c,我想知道为什么。
这是我想出的图表。基本上,我使用状态机模型和事件来改变状态。
你能告诉我为什么我找不到一个程序的 START 状态同时是 LISTEN 和 SEND 的例子吗?我看不出它不可能的原因。
【问题讨论】:
-
因为你看的不够仔细,或者你正在寻找错误的东西,或者过度指定问题。这不是一个编程问题,只是一个关于你自己过去历史的问题。
-
@EJP 还不够难吗?我尝试使用许多关键字进行搜索并浏览页面。甚至 Beej 的页面 (beej.us/guide/bgnet/output/html/multipage/…) 也提供了两个程序。让我为您改述一下这个问题:您能提供一个组合的 UDP 客户端/服务器示例吗?
-
@user2899235 大多数示例通常就是这样,示例。因此,它们尽可能小且孤立。对于套接字,隔离示例的一种自然方法是将它们划分为客户端和服务器。但你是绝对正确的。没有什么能阻止您创建一个充当客户端和服务器的程序,并且许多实际程序都是这样做的。
-
@nos 谢谢!这是我所期待的回应。没有看到任何将两者结合的例子,我认为我错过了一些关键的东西。创建一个兼具两者的程序才有意义。我希望这是一个答案而不是评论,所以我可以接受它。
标签: c sockets network-programming udp