RT  socket连接本机不会出现这个问题,一连接外网就出这个错,求解怎么解决

解决方案 »

  1.   

    你是不是在内网?有没有防火墙?你能telnet外网地址吗?
      

  2.   

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