3

我正在尝试开始使用agsXMPP,但遇到了一些问题。我正在尝试运行此代码:

using System;
using agsXMPP;

namespace TestAgs
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            XmppClientConnection connection = new XmppClientConnection ();
            connection.OnLogin += delegate {
                Console.WriteLine ("logged in");
            };
            connection.Server = "gmail.com";
            connection.ConnectServer = "talk.google.com";
            connection.Username = "my username"; // I tried both with and without '@gmail.com'
            connection.Password = "my password";
            connection.Open();
        }
    }
}

这编译得很好,但是当我尝试运行它时,什么也没有发生。它运行并完成,没有任何错误,但“登录”永远不会打印到控制台。我究竟做错了什么?

如果有什么不同,我在 Ubuntu 10.04 上使用 Mono 2.4。

4

4 回答 4

4

除非我怀疑 connection.Open () 阻塞,否则问题是您的程序到达 main 的末尾,因此它已完成运行并结束。

您希望如何阻止它退出取决于您要执行的操作,但一种方法是 ManualResetEvent:

var mre = new System.Threading.ManualResetEvent (false);
mre.WaitOne ();

当然,现在你可能会遇到相反的问题,你的应用程序没有办法完成。

于 2010-07-10T00:39:50.610 回答
1

我认为问题是端口号。您没有在连接中提供 5222 或 5223。

于 2010-07-10T07:50:10.417 回答
1

只需添加 Console.ReadLine(); 在“connection.Open();”行之后

于 2010-10-24T21:11:42.453 回答
0
// connection.Server = "gmail.com";
connection.ConnectServer = "talk3.l.google.com"; OR
connection.ConnectServer = "talk2.l.google.com";
connection.Username = "my username"; // I tried both with and without '@gmail.com'
connection.Password = "my password";
connection.Open();

talk3.l.google对我来说很好。

于 2012-08-05T13:56:16.690 回答