繁体   English   中英

使用vb.net套接字编程的Win7中的连接问题

[英]Connection issue in win7 using vb.net socket programming

我正在vb.net中使用套接字编程来创建服务器客户端远程应用程序。 当我在Win 7框中同时使用客户端和服务器时,会出现问题。 对于win xp或跨平台通信(例如win xp赢7),它工作正常。 以下是客户端和服务器端使用的代码:

客户:

Dim ips As IPAddress() 

ips = Dns.GetHostAddresses(HostName)

For index = 0 To ips.Length - 1         

Next index

================================================== =========

private sub sendFile(byval ip as string)

Dim client As TcpClient = Nothing client = New TcpClient(ips(index).ToString, 8000) 

    'Code to send file

End sub

服务器:

Dim Listener As TcpListener = Nothing
Listener = New TcpListener(IPAddress.Any, 8000)
Listener.Start()

 Dim client As TcpClient = Nothing
        Dim netstream As NetworkStream = Nothing

                If Listener.Pending() Then
                client = Listener.AcceptTcpClient()
                netstream = client.GetStream()

在win 7上同时运行客户端和服务器时,将引发以下错误:

连接尝试失败,因为一段时间后连接方未正确响应,或者建立连接失败,因为连接的主机未能响应

请帮助我找出问题所在。 是win 7拥有的权限级别吗?

如果您考虑在c#中执行此操作,是否已签出开源通信框架networkComms.net? 试图重新发明轮子没有意义。

以下是问题和解决方案:

  1. 问题:

    Win 7随附ip v6。 因此,每当我们使用Dns.GetHostAddresses(hostname)时,它都会返回与主机关联的所有IP地址(ip v4和ip v6)。 将此ip v6地址与ip v4兼容性功能一起使用会产生问题。

  2. 解决方案:

    每当使用Dns.GetHostAddresses(hostname)时,请检查ip v4。

     if (ObjTemp.AddressFamily.ToString() == ProtocolFamily.InterNetwork.ToString()) 

希望这对其他从事套接字编程的人有所帮助。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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