【问题标题】:Socket property that returns IP address/Port返回 IP 地址/端口的套接字属性
【发布时间】:2014-06-18 14:30:51
【问题描述】:

我正在尝试获取 IP AddressPortString 表示,我的 Socket 已被初始化。如果发生错误,我将使用此数据在消息框中为用户打印。

使用 VB6 中的WinSock 控件,使用了以下代码:

"Could not open TCP Connection to " & frmMain.winSock1.RemoteHost & ":" 
          & frmMain.winSock1.RemotePort

任何帮助都将不胜感激。

【问题讨论】:

  • 你最好显示 VB.NET 代码而不是 VB6,这样我们就可以看到它是如何被初始化的等等。
  • @MattWilko 我相信 OP 只是展示了过去 VB6 中的工作原理,并且正在寻找一个近似值。
  • 这个问题以前或多或少有人问过:stackoverflow.com/questions/1904160/…
  • @Verdolino 您提供的链接适用于 C#,而不是 vb.net。
  • 这真是一个关于System.Net.Sockets.Socket的简单问题。从接受的答案中可以看出,这是一个与 .Net 语言无关的问题。

标签: vb.net sockets ip-address


【解决方案1】:

Socket 在实际连接到服务器之前不知道远程 IP/端口。您必须首先为其Connect() 方法提供一个目的地。如果Connect() 失败,您必须知道您提供的目的地才能进行报告,您无法查询Socket。如果您异步连接,则必须在某处记住该目的地,以便在需要时检索它。

但是,如果Connect() 成功,您可以查询RemoteEndPoint 属性以获取Socket 连接到的实际IP/端口。这在连接到主机名时特别有用,可以发现主机名解析到的 IP 地址。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 2013-12-26
    • 1970-01-01
    • 2010-12-26
    • 2015-02-16
    相关资源
    最近更新 更多