c# socket 通讯问题,解决后必有补偿加分
在.NET环境用C#写通讯代码,原本偷懒在网络上找到一段源代码,包含一个类叫做AsySocket.cs(不知道是不是有人见到过),调用里面的方法如果服务器端及客户端都在同...
在.NET环境用C#写通讯代码,原本偷懒在网络上找到一段源代码,包含一个类叫做AsySocket.cs(不知道是不是有人见到过),调用里面的方法如果服务器端及客户端都在同一台电脑上的话,socket通讯没有问题,能发能收,不知为何如果不在同一台电脑上的话,运行到语句socket.LinkObject.Connect(textBox1.Text, Int32.Parse(textBox2.Text))时,抱错:“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。”
通过超级网上邻居确认,服务器端端口已经打开,并处于监听状态。已确认两台电脑防火墙已经关闭。望各位大虾帮忙。
端口已确认打开了 没杀毒软件
telnet命令
正在连接到10.21.1.81:2234...不能打开到主机的连接, 在端口 23: 连接失败
我怎么让端口对外开放阿?绝对没有杀毒软件,防火墙关着呢
换了好几个端口了
绝对能ping通
同志们。我可以很负责任的说,我的服务器就是在裸奔,XP系统自带的防火墙都关了。要代码的留邮箱,我发过去 展开
通过超级网上邻居确认,服务器端端口已经打开,并处于监听状态。已确认两台电脑防火墙已经关闭。望各位大虾帮忙。
端口已确认打开了 没杀毒软件
telnet命令
正在连接到10.21.1.81:2234...不能打开到主机的连接, 在端口 23: 连接失败
我怎么让端口对外开放阿?绝对没有杀毒软件,防火墙关着呢
换了好几个端口了
绝对能ping通
同志们。我可以很负责任的说,我的服务器就是在裸奔,XP系统自带的防火墙都关了。要代码的留邮箱,我发过去 展开
9个回答
展开全部
1.先ping 10.21.1.81看看能不能通,出现这个问题, 一般都是网络设置问题,因为你用本机测试都可以.
2.去服务端用netstat -a看看服务端口有没有开放.
3.你用的是不是AsySocket这个类,有如下语句
IPAddress ip = Dns.GetHostAddresses(LocalIP)[0];
这个语句据我所知在Vista或者windows 7下可能有问题.不知道你的服务端是不是Vista/win 7?
//补充
断点一下IPAddress ip = Dns.GetHostAddresses(LocalIP)[0];这个ip的值是什么,看看是不是一个标准的IPV4,不是的话,就用IPAddress ip = Dns.GetHostAddresses(LocalIP)[1];一次类推,找到一个IPV4的IP地址.
因为现在网卡里面的驱动提供多个IP地址,可能是IPV4,也可能是IPV6,如果是V6或者:::这样的空ip就有问题
2.去服务端用netstat -a看看服务端口有没有开放.
3.你用的是不是AsySocket这个类,有如下语句
IPAddress ip = Dns.GetHostAddresses(LocalIP)[0];
这个语句据我所知在Vista或者windows 7下可能有问题.不知道你的服务端是不是Vista/win 7?
//补充
断点一下IPAddress ip = Dns.GetHostAddresses(LocalIP)[0];这个ip的值是什么,看看是不是一个标准的IPV4,不是的话,就用IPAddress ip = Dns.GetHostAddresses(LocalIP)[1];一次类推,找到一个IPV4的IP地址.
因为现在网卡里面的驱动提供多个IP地址,可能是IPV4,也可能是IPV6,如果是V6或者:::这样的空ip就有问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有杀毒软件吗?卡巴有端口监控! 在CMD里面 连接一下服务器端口试试 命令是:telnet IP:端口 连接不到会提示失败的! 不过要先把服务器开启再去连接。 端口我知道已经开了。但是服务器的杀毒软件监控了该端口的话其他人是连接不上来的! telnet 连接不上去说明你服务器端口没有对外开放。能连接上去就说明你代码有问题。 没有防火墙的话换其他端口试试。按理是防火墙或者杀毒软件导致的。
在其他机器试下telnet ,看是否只是你本机连不上去还是所有都连接不上去。
我以前的代码
System.Net.Sockets.Socket mysocket = null;
mysocket = new Socket(System.Net.Sockets.AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp);
mysocket.Blocking = true;
IPEndPoint liep_IPEndPoint = new IPEndPoint(IPAddress.Parse(myip), myport);
mysocket.Connect(liep_IPEndPoint);
在其他机器试下telnet ,看是否只是你本机连不上去还是所有都连接不上去。
我以前的代码
System.Net.Sockets.Socket mysocket = null;
mysocket = new Socket(System.Net.Sockets.AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp);
mysocket.Blocking = true;
IPEndPoint liep_IPEndPoint = new IPEndPoint(IPAddress.Parse(myip), myport);
mysocket.Connect(liep_IPEndPoint);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有反映就是网络不通。这没说的。
ping通说明网络通。
那就说明还是软件被阻止了。
可能是某种协议或者端口吧。
你把两台机器防火墙卸载掉试试,有些防火墙是带服务的。
如果还不行就重做一下操作系统,裸奔着试试。
ping通说明网络通。
那就说明还是软件被阻止了。
可能是某种协议或者端口吧。
你把两台机器防火墙卸载掉试试,有些防火墙是带服务的。
如果还不行就重做一下操作系统,裸奔着试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Int32.Parse(textBox2.Text))
你确定一下,
telnet 10.21.1.81 2234
这里 2234要是textBox2.Text里指定的端口,如果这样,Telnet都提示连接不上,那只能说明你的服务器,这2234这个端口上没有任何程序在监听,所以才会导致连接不上,这个就很正常了,因为你服务端没有开,有问题可以百度HI联系
你确定一下,
telnet 10.21.1.81 2234
这里 2234要是textBox2.Text里指定的端口,如果这样,Telnet都提示连接不上,那只能说明你的服务器,这2234这个端口上没有任何程序在监听,所以才会导致连接不上,这个就很正常了,因为你服务端没有开,有问题可以百度HI联系
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-10-15
展开全部
修改 client 和 server 下的AsySocket.cs
找到:
IPEndPoint ipe = new IPEndPoint(ip, LocalPort);
修改成:
IPEndPoint ipe = new IPEndPoint(IPAddress.Any, LocalPort);
记得把分给wm41,回答不知道怎么没了。
找到:
IPEndPoint ipe = new IPEndPoint(ip, LocalPort);
修改成:
IPEndPoint ipe = new IPEndPoint(IPAddress.Any, LocalPort);
记得把分给wm41,回答不知道怎么没了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询