一个网络程序,在局域网调试没有问题,把服务器端移到英特网(外网)上,运行客户端时出现"远程主机强迫关闭了一个现有的连接"错误!请高手进,在线等

问题描述

服务器端代码:classThreadtcp{privateSocketserver;publicThreadtcp(){IPAddresslocal=Dns.GetHostAddresses(Dns.GetHostName())[0];IPEndPointiep=newIPEndPoint(local,30000);server=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);server.Bind(iep);server.Listen(20);Console.WriteLine("等待客户机进行连接...");while(true){Socketclient=server.Accept();clientThreadnewclient=newclientThread(client);Threadnewthread=newThread(newThreadStart(newclient.ClientService));newthread.Start();}}}classclientThread{publicstaticintconn=0;publicSocketservice;inti;publicclientThread(Socketsc){this.service=sc;}publicvoidClientService(){stringdata=null;byte[]bytes=newbyte[1024];if(service!=null)Console.WriteLine("新客户连接建立:{0}个连接数",++conn);while((i=service.Receive(bytes))!=0){data=Encoding.ASCII.GetString(bytes,0,i);Console.WriteLine("收到的数据:{0}",data);data=data.ToUpper();byte[]msg=Encoding.ASCII.GetBytes(data);service.Send(msg);Console.WriteLine("发送的数据:{0}",data);}service.Close();Console.WriteLine("客户关闭连接:{0}个连接数",--conn);}}客户端代码:classProgram{staticvoidMain(string[]args){stringstr=null;while(str!="1"){byte[]buffer=newbyte[1024];Socketserver=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);IPAddressadr=IPAddress.Parse("192.168.1.100");IPEndPointep=newIPEndPoint(adr,30000);str=Console.ReadLine();server.Connect(ep);server.Send(Encoding.ASCII.GetBytes(str));intrec=server.Receive(buffer);//就在这里出错:“远程主机强迫关闭了一个现有的连接”Console.WriteLine(Encoding.ASCII.GetString(buffer,0,rec));server.Close();Console.WriteLine("断开了与服务器的连接...");}}}当把客户端的IP地址换成外网服务器端的IP就不行了.另外,30000端口已打开,服务器操作系统是windowsserver2003enterprise服务器WINDOWS防火墙已关闭.不过服务器有一个ARP防火墙客户端关不了,只能关闭ARP服务.

解决方案

解决方案二:
up
解决方案三:
up
解决方案四:
up
解决方案五:
Socket学习
解决方案六:
1.对方关闭时没有调用shutdown而是直接调用closesocket时会出现这个问题2.对方的进程异常结束时
解决方案七:
学习来。
解决方案八:
你完全可以捕获这个异常,然后处理这个异常!
解决方案九:
这个是因为服务器端已经将连接断开了,所以这个异常是需要捕获的,然后把连接断开,释放socket如果需要重新连接,则去重新连接。
解决方案十:
帮顶来。

时间: 2024-09-23 02:47:00

一个网络程序,在局域网调试没有问题,把服务器端移到英特网(外网)上,运行客户端时出现"远程主机强迫关闭了一个现有的连接"错误!请高手进,在线等的相关文章

在线等。。。C# 连接mysql 提示“远程主机强迫关闭了一个现有的连接”

问题描述 1,本机代码连接线上数据库时提示"远程主机强迫关闭了一个现有的连接",跟踪时发现出错在cmd.ExecuteReader()是,con.open()时没有报错.2,我自己另外新建一个控制台应用程序,可以链接到线上数据库.3,把空间里的数据库导出到本地调试后,项目代码连接到本地数据库又一切正常.请问各位问题处在什么地方,谢谢各位了具体错误信息如下下图 解决方案 本帖最后由 wangjun1255 于 2014-12-19 14:52:51 编辑解决方案二:互联网本来就是时断时通

真机调试遇到麻烦:远程主机强迫关闭了一个现有的连接

问题描述 真机调试遇到麻烦:远程主机强迫关闭了一个现有的连接 使用豌豆荚,USB线连接手机,Eclipse中运行Android应用程序时, 总是提示:远程主机强迫关闭了一个现有的连接. 在网上下了几个adb.exe文件放到SDK/platform-tools下,还是不行 请问各位高手,怎么彻底解决这个问题, 我用的API-18 Android4.3 ADT:v22.2.1-833290 解决方案 看下你的真机是不是安装了杀毒软件或者什么软件干扰了你的程序 解决方案二: 手机上有策略不允许你链接访

求助:读取网络文件失败,返回“远程主机强迫关闭了一个现有连接”

问题描述 我的函数需要遍历下载100个YAHOO股票文件,但是如果当前股票停盘,如果我读取这个股票的文件则提示"远程主机强迫关闭了一个现有连接",如果继续循环往下遍历走的话,则失败,必须等待几十秒的超时后,才能继续进行FOR循环下载,请问这种问题如何解决?下面的代码,600317可以下载,但是600318现在停盘,下载数据会死掉下面是代码:privatevoidbutton2_Click_1(objectsender,EventArgse){stringstrUri;stringfil

为什么.net的程序本身执行,运行没任何问题,但部署到IIS中的时候报“远程主机强迫关闭了一个现有的连接。 ”,未开启防火墙。

问题描述 为什么.net的程序本身执行,运行没任何问题,但部署到IIS中的时候报"远程主机强迫关闭了一个现有的连接.",未开启防火墙. 解决方案 解决方案二:很明显,程序和数据连接出了问题解决方案三:远程主机强迫关闭了一个现有的连接.未开启防火墙.1.IIS设置最大连接池,有可能链接的过多,SqlConnection后要Dispose2.trycatch具体看看报出的异常是什么解决方案四:问题是本地运行没任何问题,只是部署到IIS会出现问题解决方案五:权限,路径是否正确.

紧急求助:RC: 10054 远程主机强迫关闭了一个现有的连接

问题描述 项目上线,但是报出下列错误,请高手解答下,不胜感激:[11-12-515:07:41:593CST]00000017srtEcom.ibm.ws.webcontainer.srt.SRTServletRequestparseParametersSRVE0133E:解析参数时出错.{0}java.io.IOException:AsyncIOoperationfailed(1),reason:RC:10054远程主机强迫关闭了一个现有的连接.atcom.ibm.io.async.Async

Adb connection Error:远程主机强迫关闭了一个现有的连接

做android开发的时候eclipse的console一直出现这个问题,有时候是启动eclipse后就出现这个问题,有时候是运行android程序的时候出现的,重启avd和重启eclipse都不行.后面在网上找到了解决办法. 先说原因嘛,这是ddms调用adb引发的. 经过一番搜索, 发现这是windows环境下, adb的一个限制, 也可以说是bug.  当手机上同时运行的进程数大于64时, 就会引发adb奔溃. 更深层次的原因, 就是windows API的WaitForMultipleO

求解决Webservice 接口调用远程主机强迫关闭了一个现有的连接异常

问题描述 HttpWebRequestrequest=HttpWebRequest.Create(url+"?WSDL")asHttpWebRequest;HttpWebResponseresponse=request.GetResponse()asHttpWebResponse;//这一句异常if(response.StatusCode!=HttpStatusCode.OK)returnfalse;url为一个Webservice接口连接,程序调用也不是每个调用都不成功,我在多个客户

adb-Adb connection Error:远程主机强迫关闭了一个现有的连接。

问题描述 Adb connection Error:远程主机强迫关闭了一个现有的连接. andriod 启动虚拟机的时候报以下错误 [2015-01-25 16:10:29 - DeviceMonitor] Adb connection Error:远程主机强迫关闭了一个现有的连接. [2015-01-25 16:10:30 - DeviceMonitor] Connection attempts: 1 [2015-01-25 16:10:32 - DeviceMonitor] Connecti

在svn上update的时候提示 远程主机强迫关闭连接远程主机强迫关闭了一个现有的连接

问题描述 在svn上update的时候提示 远程主机强迫关闭连接远程主机强迫关闭了一个现有的连接 提示如下,在网上没找到可靠的办法,重启.svn修复都试过了,但还是这样. 请高手执照 解决方案 SVN 远程主机强迫关闭了一个现有的连接远程主机强迫关闭了一个现有的连接.UDP 远程主机强迫关闭了一个现有的连接 解决方案二: 是不是你的账号没有提交权限. 解决方案三: 用svn清除一下就可以了 解决方案四: 机器人给出的第一个链接楼主试试. 解决方案五: 以上方法都没有用吗,还是这样