![](/img/trans.png)
[英]UDP Packet not captured by Wireshark, but is captured by UDP application
[英]Udp Socket handling
我想使用UDP套接字简单地发送音频流。 我的问题是我无法使用它,我认为使用TCP IP会更简单。
我所做的是在表单上删除了UDPSocket组件,对于服务器部分,我使用了此代码
with udpServer do
begin
LocalHost := '127.0.0.1';
LocalPort := '5002';
Open();
Active := True;
end;
对于客户端应用程序:
with udpClient do
begin
RemoteHost := '192.0.168.100'; //my local address
RemotePort := '5002';
Open();
Active := True;
end;
问题是我什么都没收。 我做错了什么,我没有任何可以阻止连接的第三方软件。
我没有找到任何适合使用此组件的示例,任何灵感来源都将不胜感激。
您将服务器和客户端连接在同一IP上。
通常,如果将服务器应用程序IP地址设置为0.0.0.0,它将绑定到给定端口上的任何可用IP地址,包括127.0.0.1。
然后,客户端必须连接到绑定的IP之一。 相反,您让服务器侦听127.0.0.1,而客户端连接到192.0.168.100。
不要被“ LocalHost”属性名所迷惑。 这里的“本地”仅表示您必须设置一个“本地” IP,即分配给本地计算机的IP,而不是(另一台计算机的)“远程” IP,而客户端当然会连接到“远程” IP,服务器的。
当且仅当您希望服务器仅对本地应用程序可用时,127.0.0.1是一个不错的选择,因为该IP范围仅限于同一台计算机。 如果要使其在机器外部可用,则必须将其绑定到有效IP。
无论您遇到什么问题, Wireshark或Microsoft Network Monitor之类的工具对于了解正在发生的事情都非常有用。
您将服务器绑定到127.0.0.1
,因此它将仅接受专门连接到127.0.0.1
客户端。 您的客户192.0.168.100
在连接到192.0.168.100
(也许您是指192.168.0.100
吗?)。
您需要将服务器绑定到客户端实际连接到的IP,或者将其绑定到0.0.0.0
以接受任何本地IP上的连接。
即使UDP是无连接的,此规则也适用于UDP和TCP,因为它适用于它们都共享的较低级IP路由层。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.