gpt4 book ai didi

c - Libuv UDP基本发送

转载 作者:行者123 更新时间:2023-11-30 15:06:04 26 4
gpt4 key购买 nike

当我尝试发送一些基本的 UDP 消息时,它看起来好像没有发送。我尝试运行我在网上找到的几个示例。我正在使用 SocketTest v3.0.0 来测试服务器/客户端。当我测试 TCP 发送时,一切都按预期工作,但在 UDP 情况下,它根本没有。

你能提供一些非常基本的UDP发送代码片段吗?例如,接收者将位于本地主机上,并且消息将包含“test”并且它将是固定长度?

我还有一个小问题。如果我在本地主机上发送消息,应用程序(服务器)本身可以接收它并认为其他人已经发送了它(导致循环),因为它没有连接到某个对等点,它只是发送消息并在同一 IP 端口上监听?

谢谢:)

最佳答案

这里有很多有用的例子:https://nikhilm.github.io/uvbook/networking.html

uv_loop_t *loop;
uv_udp_t send_socket;
uv_udp_t recv_socket;

int main() {
loop = uv_default_loop();

uv_udp_init(loop, &recv_socket);
struct sockaddr_in recv_addr;
uv_ip4_addr("0.0.0.0", 68, &recv_addr);
uv_udp_bind(&recv_socket, (const struct sockaddr *)&recv_addr, UV_UDP_REUSEADDR);
uv_udp_recv_start(&recv_socket, alloc_buffer, on_read);

uv_udp_init(loop, &send_socket);
struct sockaddr_in broadcast_addr;
uv_ip4_addr("0.0.0.0", 0, &broadcast_addr);
uv_udp_bind(&send_socket, (const struct sockaddr *)&broadcast_addr, 0);
uv_udp_set_broadcast(&send_socket, 1);

uv_udp_send_t send_req;
uv_buf_t discover_msg = make_discover_msg();

struct sockaddr_in send_addr;
uv_ip4_addr("255.255.255.255", 67, &send_addr);
uv_udp_send(&send_req, &send_socket, &discover_msg, 1, (const struct sockaddr *)&send_addr, on_send);

return uv_run(loop, UV_RUN_DEFAULT);
}

关于c - Libuv UDP基本发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39436990/

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