急!急!急~~~ 由于目标机器积极拒绝,无法连接本人调试一本c#写的Socket服务端时,如果一台客户端写一个与服
急!急!急~~~ 由于目标机器积极拒绝,无法连接
本人调试一本c#写的Socket服务端时,如果一台客户端写一个与服务端连接发送数据,再断开连接的循环,运行客户端执行循环,再CTL+C关闭客户端,如此循环手动操作,有概率出现,客户端再连接不上服务端,返回操作异常:”由于目标机器积极拒绝,无法连接。“
请哪位遇到过类似情况的大侠指点一下迷津,万分感谢~~~
[最优解释]
你在客户端的接收和传输功能应该是做在线程上面吧,估计你线程中的有些资源没有释放,你断开的时候释放下当前接收传输线程,估计就没有这种问题了
[其他解释]
为啥要断开连接呢?难道你的客户端连接上了服务端就要断开?
[其他解释]遇到过这样的问题,可能是访问的人过多,过一段时间在访问
[其他解释]我也觉得是服务端没有监听的原因 服务端没监听 客户端连接的时候就会报这个错
[其他解释]+1
小于1024的端口号大多数都已经被占用或者预留作特殊用途了 http://baike.baidu.com/view/642103.htm
服务端可以开异步线程来处理业务,以保证及时处理新收到的请求
[其他解释]自己顶一下,坐等牛人出现~~~
[其他解释]ip不正确或端口未开启,在不就看下是否网络连接上了。 一般前者的可能性大。
[其他解释]需要保证服务器端一直处于监听状态
[其他解释]请问什么情况会导致线程的资源没有释放,以及如何释放当前接受的传输线程呢??
[其他解释]没玩过
帮顶
[其他解释]嗯,Socket,学习下
[其他解释]可能你断开的时候,只是关闭了套接字,但是没有立即释放线程,也就是说:虽然关掉套接字,线程也会随着释放,但是这个释放是通过gc释放的,而gc释放的话就需要一些时间,当你连续点击连接和断开的时候,有可能gc没有释放完上个线程的资源,所以。。。
还有可能是服务器上的监听自动关闭了,我想想可能是这个原因,你调试下服务器端看看
[其他解释]怎么确定服务器端的监听是否自动关闭呢?
如果把listen()的参数写的很小比如2,就不会出现这个问题了;相反如果把listen()的参数写的很大比如200,就很容易出现这个问题。
[其他解释]我想找出问题出在哪里,但是本人对Socket只了解点皮毛,所以不知道该如何去找对应的问题。
比如:如何查看服务器的连接数?如何查看TCP连接队列和TCP等待连接的队列?
[其他解释]你可以调试下服务器端看看具体的是什么造成的,还有你的端口号最好是大于1024,呵呵
[其他解释]请问能否说的具体一点,如何调试,还有端口为什么要大于1024呢?
[其他解释]你自己不会只写了个客户端吧?应该还有个服务器端,也就是接受你客户端上信息,然后发送信息到客户端,你可以调试这个服务器端的项目,看具体原因,1024以内的都是微软自己有需要的,如果你开这些端口,会发生错误的,当然你懂得端口复用的话,就没问题了。呵呵
其实我也懂的不是很深的~~学习中
[其他解释]谢谢你了,我想这个应该和listen()的参数有关系,期待有遇到过这个问题的大侠出现~~~
[其他解释]socket设置为Reuse
[其他解释]意思是对方主动断了你的连接..
[其他解释]我想是我表达的不够清楚吧。
问题是这样的:这里有一个C#写的异步传输的socket通讯服务端,功能就是接受客户端发来的消息,然后返回一个消息给客户端,再断开连接。如果有很多客户端同时向服务端发送请求,服务端就有概率被卡住,无法再接受其他客户端发送来的请求,而且是一直卡住(服务端进程没有挂掉)
有没有遇到这种情况的朋友呢???
[其他解释]如果你能保证你的服务端侦听端口正常开启对话,有可能是没有循环监听,可以试试循环监听或者多线程处理
[其他解释]因为只需要发送一条验证消息,没必要长时间保持连接,况且会有大量客户端连接服务器,都保持连接,其他客户端就连不进来了
[其他解释]服务挂了啊,看看服务是否还在运行
[其他解释]速度太快的话那是由于你的端口还没来得及释放,等个几秒的时间就可以连接。
[其他解释]额, 我说这error 怎么这么熟悉.原来跟我memcached 上报的一样~~~~
[其他解释]因为客户端用的是一个flash插件连的客户端,所以端口为843,他们说这个端口改了就连不上了~~~
[其他解释]请问怎么确认 服务端是否还在监听状态??
服务端并没有挂掉,而且过了很久,也不会再响应客户端请求了
[其他解释]肯定是防火墙的问题啊
[其他解释]顶一下,今天再没反馈就结贴了~~
[其他解释]看下自己的端口资源还有没有,开始连接的客户端端口后端口有没有释放掉?