【问题标题】:Create socket connection (TCP or UDP) without ip address创建没有 IP 地址的套接字连接(TCP 或 UDP)
【发布时间】:2016-07-30 15:24:55
【问题描述】:

我想连接我的服务器。 我的服务器正在监听 50000 端口。

            NetworkStream socketStream = null;
            Socket AcceptedClient;// stream for receiving data           
            byte[] bCode;

            TcpListener listener = null;       
            IPAddress local = IPAddress.Any;
            listener = new TcpListener(local, 50000);

在客户端计算机中:

我不知道它的 IP 和主机名。

我们的IP在192.168.1.x

我必须有它的 IP 或主机名。

我可以在这种情况下创建套接字连接吗?

我的问题是: 是否可以连接没有IP地址的其他计算机?(TCP或UDP) 谢谢。

【问题讨论】:

  • 有点不清楚你在问什么。你在问你应该听哪个IP?还是要连接到另一台机器?
  • 您可以尝试连接到192.168.1.x范围内的每个现有IP地址。
  • 绑定到 0.0.0.0:50000 但你需要知道是 TCP 还是 UDP(不能同时是两者)。
  • 你的意思是你不知道服务器的ip地址吗?或者客户的。如果是客户端,则不需要它。但是你确实需要服务器的IP地址。
  • 如果你在自己的私有路由器后面,你可以给你的服务器一个固定的 ip 地址,它被排除在 dhcp 范围之外,或者通过使用 mac 地址来配置它总是分配相同的IP地址。取决于你的路由器类型。

标签: c# sockets tcp udp ip-address


【解决方案1】:

创建 UDP 监听器对象

UdpClient client = new UdpClient();

定义广播模式下发送代码的端点

IPEndPoint end = new IPEndPoint(IPAddress.Parse("192.168.0.255"),50001);
byte[] bCodeMelli = System.Text.Encoding.Unicode.GetBytes(strCodeMelli);
client.SendAsync(bCodeMelli, bCodeMelli.Length, end);
byte[] bInfo = client.Receive(ref end);

【讨论】:

    【解决方案2】:

    如果客户端不知道服务器的地址,但在同一子网中,则考虑使用来自客户端的 UDP 广播(服务器将侦听该广播)。看看这个问题:Sending UDP broadcast, receiving multiple messages

    【讨论】:

    • 我使用UDP协议和广播消息。坦克
    猜你喜欢
    • 2011-10-01
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 2023-02-12
    • 2012-07-05
    • 2020-04-29
    相关资源
    最近更新 更多