繁体   English   中英

UDP套接字处理

[英]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。

无论您遇到什么问题, WiresharkMicrosoft 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM