套接字Beginconnect多次连接同一套接字,而未连接

马克·罗梅罗(Marc Romero)

我正在尝试使用c#中的异步套接字将客户端连接到服务器。

我正在执行socket.beginconnect尝试连接,但要点是,如果未建立连接,我希望它尝试开始连接,并且如果在500毫秒内未建立连接,我想再次尝试可以说10次

我尝试了一个简单的泡,但是它无法工作,因为在上一个泡完成之前,我无法再次开始连接,但是当开始连接完成并且找不到服务器时,它将返回没有服务器的期望。

尤金·波兹卡尔(Eugene Podskal)

MSDN文档说:

若要取消对BeginConnect方法的挂起调用,请关闭Socket。在进行异步操作时调用Close方法时,将调用提供给BeginConnect方法的回调。后续对EndConnect方法的调用将引发ObjectDisposedException,以指示该操作已被取消。

因此,您每次必须创建一个新的Socket:

public Socket TryConnect(...)
{
    Socket socket;

    try
    {
        socket = new Socket(...);
        var connect = Task.Factory.FromAsync(
            socket.BeginConnect, socket.EndConnect, host, port, null);

        var isConnected = connect.Wait(TimeSpan.FromSeconds(0.5));

        if (!isConnected)
        {
            socket.Close();
            return null;
        }

        return socket;      
    }
    catch
    {
        if (socket != null)
        {
            socket.Dispose();
        }
        throw;
    }
}


for (var i = 0; i < 10; i++)
{
    var socket = TryConnect();
    if (socket != null)
        return socket;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java ServerSocket多次连接到同一套接字

来自分类Dev

Java ServerSocket多次连接到同一套接字

来自分类Dev

Python套接字:使用同一套接字处理多个连接

来自分类Dev

Python套接字:使用同一套接字处理多个连接

来自分类Dev

Sails.js 0.10套接字未连接

来自分类Dev

Sails.js 0.10套接字未连接

来自分类Dev

客户端可以同时具有到同一套接字侦听器的两个连接吗?

来自分类Dev

将套接字存储在向量中然后关闭,同一套接字不断增加

来自分类Dev

在同一套接字上接收多个消息

来自分类Dev

从同一套接字发送和接收数据的简单UDP示例

来自分类Dev

c-udp在同一套接字上发送和接收

来自分类Dev

在C#中的同一套接字上发送+接收数据

来自分类Dev

如何使多个线程使用同一套接字进行读写?

来自分类Dev

在C ++中的同一套接字上接收单播和多播

来自分类Dev

在同一套接字上使用zmq_poll和zmq_send()

来自分类Dev

c-udp在同一套接字上发送和接收

来自分类Dev

HTTP隧道是否与CONNECT发生在同一套接字上?

来自分类Dev

关闭BufferedWriter / Reader是否会影响绑定到同一套接字的其他实例?

来自分类Dev

(Winsock)UDP接收有效,但对于同一套接字发送失败

来自分类Dev

使用同一套接字发送和接收UDP多播数据包

来自分类Dev

在Linux的同一套接字上接收来自不同组的多播数据

来自分类Dev

关闭BufferedWriter / Reader是否会影响绑定到同一套接字的其他实例?

来自分类Dev

套接字未连接 Python

来自分类Dev

两个线程可以同时使用同一套接字,这可能有问题吗?

来自分类Dev

在同一套接字上同时调用Boost C ++ ASIO函数close()和async_write()是否有问题?

来自分类Dev

C套接字编程通过同一连接发送多个发送和接收

来自分类Dev

在Docker容器中重新连接后boost1.62套接字损坏

来自分类Dev

套接字连接超时

来自分类Dev

套接字TCP连接

Related 相关文章

  1. 1

    Java ServerSocket多次连接到同一套接字

  2. 2

    Java ServerSocket多次连接到同一套接字

  3. 3

    Python套接字:使用同一套接字处理多个连接

  4. 4

    Python套接字:使用同一套接字处理多个连接

  5. 5

    Sails.js 0.10套接字未连接

  6. 6

    Sails.js 0.10套接字未连接

  7. 7

    客户端可以同时具有到同一套接字侦听器的两个连接吗?

  8. 8

    将套接字存储在向量中然后关闭,同一套接字不断增加

  9. 9

    在同一套接字上接收多个消息

  10. 10

    从同一套接字发送和接收数据的简单UDP示例

  11. 11

    c-udp在同一套接字上发送和接收

  12. 12

    在C#中的同一套接字上发送+接收数据

  13. 13

    如何使多个线程使用同一套接字进行读写?

  14. 14

    在C ++中的同一套接字上接收单播和多播

  15. 15

    在同一套接字上使用zmq_poll和zmq_send()

  16. 16

    c-udp在同一套接字上发送和接收

  17. 17

    HTTP隧道是否与CONNECT发生在同一套接字上?

  18. 18

    关闭BufferedWriter / Reader是否会影响绑定到同一套接字的其他实例?

  19. 19

    (Winsock)UDP接收有效,但对于同一套接字发送失败

  20. 20

    使用同一套接字发送和接收UDP多播数据包

  21. 21

    在Linux的同一套接字上接收来自不同组的多播数据

  22. 22

    关闭BufferedWriter / Reader是否会影响绑定到同一套接字的其他实例?

  23. 23

    套接字未连接 Python

  24. 24

    两个线程可以同时使用同一套接字,这可能有问题吗?

  25. 25

    在同一套接字上同时调用Boost C ++ ASIO函数close()和async_write()是否有问题?

  26. 26

    C套接字编程通过同一连接发送多个发送和接收

  27. 27

    在Docker容器中重新连接后boost1.62套接字损坏

  28. 28

    套接字连接超时

  29. 29

    套接字TCP连接

热门标签

归档