当前注册人数381640人 邮箱: 密码: 注册新用户 忘记密码
首页 C/C++/MFC C# ASP.NET VB.NET MATLAB Android   站内搜索 下载代码说明/积分规则
为什么要注册?

1. 可以直接免费从本站下载代码,防止邮件发送不到您的邮箱,或登录不了国外网站

2. 可以设定关键字,当有您关心的代码收录时,邮件通知您

3. 对这里的代码进行评分和评论

4. 可以和大家一起分享你的源代码,得到更多的建议

Failover Socket Client When can’t Connect to the Host

Socket客户端连接主机失败时自动跳转(多主机)源代码

2008年03月26日
C#, C# 2.0, Windows, .NET, .NET 2.0, VS, VS2005, Dev
这个源代码完成的功能是当一个主机没有响应的时候,自动跳转到其他主机上,继续发生或者说是传递以前的消息,让系统以最健壮的方式运行。它适用的场景如下:1.连接第一个有效的主机 2. 如果连接失败,尝试连接其他的主机 3. 以同样的顺序发送消息 4. 如果,没有一个主机可用的话,备份消息,等到主机有效时再发送。
相关知识
void OnDoWork(object sender, DoWorkEventArgs e)
{
    while (_messages.Count > 0)
    {
        TcpClient client = new TcpClient();
        try
        {
            client.Connect(IPAddress.Parse(_activeHost.IP), _activeHost.Port);

            string message = _messages.Dequeue();

            byte[] buffer = Encoding.Unicode.GetBytes(message);

            client.Client.Send(buffer);

            Log(new MessageEventArgs(message, _messages.Count, MessageStatus.Success, null));
        }
        catch (SocketException ex)
        {
            _hasFailures = true;
            string[] messages = _messages.ToArray();
            Log(new MessageEventArgs(null, _messages.Count, MessageStatus.Failure, ex.Message));

            _messages.Clear();
            //save array to file
            StringBuilder allMessages = new StringBuilder();
            foreach (string message in messages)
            {
                allMessages.Append(message + Environment.NewLine);
            }
            File.AppendAllText(_filepath, allMessages.ToString(), Encoding.UTF8);
            //failover
            _activeHost = FindHost();
        }
        finally
        {
            if (client.Connected)
            {
                client.Client.Shutdown(SocketShutdown.Both);
                client.Client.Disconnect(false);
            }
        }
    }
    _backgroundWorker = null;
}
源代码原文下载:
Failover Socket Client A socket client which fails over to a different host when the connection drops

源码图片

点击链接查看大图
从本站下载附件及源代码(1个附件,已经成功下载443次)

最值得关注的外文源代码

WCF / WPF Chat Application
Using Asynchronous Sockets for Peer-to-Peer - CollaborativeNotes
a Fast FTP and SFTP Client and FTP Server
jMVC.NET: Easy dynamic client-side UIs with clean MVC coding
评论(评论是增加积分的一个有效途径)
字数在300字内
请如实评论
本源代码共评论65次,此处显示最近20次评论! 查看所有评论

ord2011  2013年07月26日
不错,值得学习
林小鱼  2013年06月15日
什么情况
林小鱼  2013年06月15日
看看 的
flyer123456  2012年09月11日
先下载再看看.希望有用 。
mengyihh  2012年08月15日
真的不错,学习下!
  2012年05月23日
应该还不错,下了,还没试
ftphttp1  2012年04月28日
谢谢,这类的程序还真不多。收了
夕景飞羽  2012年04月18日
收了
chine  2012年01月28日
学习一下下
微笑  2012年01月17日
非常好 谢谢哦
hzyjoy  2011年09月03日
使用
WilliamYe  2011年07月11日
非常好 谢谢
glm9008  2010年12月20日
非常好 谢谢哦
ducknan  2010年10月05日
henhao
kkkzm  2010年05月08日
学习,先谢了
润物1267  2010年01月10日
我正需要呢
hahahaha  2009年09月03日
好像有点逻辑不合理,但是又想不到
kevinju  2009年06月06日
well done!
kevinju  2009年06月06日
感謝分享~
maxyeah  2009年04月25日
好像有点逻辑不合理,但是又想不到
字数在300字内
请如实评论
200万国内源码搜索
CopyRight (C) codesoso.com 2007-2009 All Rights Reserved zhihuishi   免责声明