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

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个附件,已经成功下载216次)

最值得关注的外文源代码

A multi-threaded simple crawler with C# sockets
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字内
请如实评论
本源代码共评论39次,此处显示最近20次评论! 查看所有评论

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日
好像有点逻辑不合理,但是又想不到
persialee  2009年04月20日
很好,学习了
hunk3000  2009年01月23日
谢谢分享~
yyphzc  2009年01月12日
应该可以的,先谢谢了
dbrose  2009年01月12日
对我目前不是很有用,研究一下
xdeduzb  2009年01月10日
很是谢谢
zwd  2008年12月08日
应该不错
xudongme  2008年11月25日
cket客户端连接主机失败时自动跳转(多主机)源代码
遥望  2008年11月20日
正好我也要找类似代码
杨文文  2008年11月10日
Socket客户端连接主机失败时自动跳转(多主机)源代码
dada730  2008年11月07日
正需要呢
zxx511822876  2008年11月04日
对我目前不是很有用,研究一下
lfq761204  2008年11月01日
好东西
applesongyu  2008年09月25日
非常好 谢谢哦
sizzle  2008年09月08日
正好我也要找类似代码,呵呵,研究一下
字数在300字内
请如实评论
CopyRight (C) codesoso.com 2007-2009 All Rights Reserved   免责声明
京ICP备08011023号