相关疑难解决方法(0)

使用SO_REUSEADDR时,接收UDP数据包发送到127.0.0.1

我试图使一组应用程序使用UDP和广播消息发现彼此.应用程序将定期发送一个UDP数据包,说明它们是谁以及它们可以做什么.最初我们只用于广播到INADDR_BROADCAST.

所有应用程序共享同一个端口进行监听(因此SO_REUSEADDR).事件内核对象附加到套接字,因此当我们可以获取新数据包并在WaitFor循环中使用它时,我们会收到通知.套接字用于异步.

打开插座:

FBroadcastSocket := socket( AF_INET, SOCK_DGRAM, IPPROTO_UDP );
if FBroadcastSocket = INVALID_SOCKET then Exit;
i := 1;
setsockopt( FBroadcastSocket, SOL_SOCKET, SO_REUSEADDR, Pointer( @i ), sizeof( i ) );
i := 1;
setsockopt( FBroadcastSocket, SOL_SOCKET, SO_BROADCAST, Pointer( @i ), sizeof( i ) );
System.FillChar( A, sizeof( A ), 0 );
A.sin_family      := AF_INET;
A.sin_port        := htons( FBroadcastPort );
A.sin_addr.S_addr := INADDR_ANY;
if bind( FBroadcastSocket, A, sizeof( A ) ) = SOCKET_ERROR then begin
    CloseBroadcastSocket();
    Exit;
end;
WSAEventSelect( FBroadcastSocket, FBroadcastEvent, …
Run Code Online (Sandbox Code Playgroud)

delphi udp localhost broadcast

8
推荐指数
1
解决办法
5664
查看次数

如何在 Delphi 中发送广播消息

我想在我的局域网中发送广播 UDP 消息,应用程序是客户端/服务器。

我希望更新用户界面,这样任何计算机都会发送消息来更新其他计算机。我可以使用 UDPServer indy,如何使用?谢谢

delphi broadcast

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

broadcast ×2

delphi ×2

localhost ×1

udp ×1