C# 用vb.net套接字编程解决win7中的连接问题
我正在使用vb.net中的套接字编程来创建服务器客户端远程处理应用程序。当我在Win7框中同时使用客户端和服务器时,就会出现问题。它适用于win xp或跨平台通信,例如win xp到win 7。 以下是客户端和服务器端使用的代码: 客户:C# 用vb.net套接字编程解决win7中的连接问题,c#,vb.net,sockets,tcpclient,tcplistener,C#,Vb.net,Sockets,Tcpclient,Tcplistener,我正在使用vb.net中的套接字编程来创建服务器客户端远程处理应用程序。当我在Win7框中同时使用客户端和服务器时,就会出现问题。它适用于win xp或跨平台通信,例如win xp到win 7。 以下是客户端和服务器端使用的代码: 客户: Dim ips As IPAddress() ips = Dns.GetHostAddresses(HostName) For index = 0 To ips.Length - 1 Next index =============
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上同时运行客户端和服务器时,会引发以下错误:
由于连接方在一段时间后没有正确响应,连接尝试失败;或者由于连接的主机未能响应,建立的连接失败
请帮我找出问题所在。是7的权限级别吗?< P>如果你考虑在C中这样做,你检查了开源通信框架NETWorkCuS.NET吗?试图重新发明轮子毫无意义。以下是问题和解决方案: 问题: Win 7附带ip v6。因此,无论何时使用Dns.GetHostAddresseshostname,它都会返回与主机ip v4和ip v6关联的所有ip地址。将此ip v6地址与用于ip v4兼容性的函数一起使用会产生问题 解决方案: 无论何时使用Dns.GetHostAddresseshostname,请检查ip v4
if (ObjTemp.AddressFamily.ToString() == ProtocolFamily.InterNetwork.ToString())
希望这能对从事套接字编程的其他人有所帮助 服务器如何接受传入连接?Tcplistener正在侦听具有任何ip地址的指定端口,一旦创建tcpClient,它就会将数据发送到服务器,服务器使用添加的代码读取网络流:Dim client as tcpClient=Nothing Dim netstream as NetworkStream=Nothing If Listener.Pending Then client=Listener.AcceptTcpClientnetstream=client.getstream您是否取消了防火墙上的端口阻止?IP地址正确吗?IP地址正确,但是如何以编程方式取消阻止端口?请建议