日期:2014-05-17  浏览次数:22605 次

(急!急!急!)sendArray.BeginSend() error, Error=由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)
RT  socket连接本机不会出现这个问题,一连接外网就出这个错,求解怎么解决
------最佳解决方案--------------------
我现在回 不了你的短消息……
------其他解决方案--------------------
引用:
你是不是在内网?有没有防火墙?你能telnet外网地址吗?

可以telnet外网!
------其他解决方案--------------------
你是不是在内网?有没有防火墙?你能telnet外网地址吗?
------其他解决方案--------------------
.NET

--
搜了一下。
1:.net socket的beginSend和beginReceive用的是完成端口
2:BeginSend需要注意的是,一定要控制发送的速度。否则,这个连接一定会因为系统缓冲区满而抛出异常。控制速度的办法就是在发送时计算发送的包数 量,在EndSend的时候计算发送成功的包数量。在发送之前,检查未发送的包数量,如果小于预设值则发送,否则暂停。这个地方会阻塞线程,所以也不是最 好的方法,比较好的办法,是自己做个发送缓冲队列。然后用一个专门的线程来处理发送。这样,只要用很少的线程,就可以处理发送。虽然BeginSend用 了完成端口,但是如果在系统中有大量被阻塞的线程,那就违背了完成端口的本意。

这两点注意了么?
------其他解决方案--------------------
引用:
.NET

--
搜了一下。
1:.net socket的beginSend和beginReceive用的是完成端口
2:BeginSend需要注意的是,一定要控制发送的速度。否则,这个连接一定会因为系统缓冲区满而抛出异常。控制速度的办法就是在发送时计算发送的包数 量,在EndSend的时候计算发送成功的包数量。在发送之前,检查未发送的包数量,如果小于预设值则发送,否则暂停。这个地方会阻……

谢谢娜娜! 偶找到那里出错了解决了!
------其他解决方案--------------------
可以告诉我,你怎么解决的吗,我也遇到这样的问题,我都查找好几天了,都没有找到比较好的方法。
------其他解决方案--------------------
null