Mono 为什么可以';我不能在agsXMPP中连接到Google Talk吗?

Mono 为什么可以';我不能在agsXMPP中连接到Google Talk吗?,mono,xmpp,agsxmpp,Mono,Xmpp,Agsxmpp,我正在尝试开始使用,但我遇到了一些问题。我正在尝试运行以下代码: using System; using agsXMPP; namespace TestAgs { class MainClass { public static void Main (string[] args) { XmppClientConnection connection = new XmppClientConnection ();

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

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。

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

您希望如何阻止它退出取决于您尝试执行的操作,但一种方法是手动重置事件:

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

当然,现在您可能遇到了相反的问题,您的应用程序无法完成。

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

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


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

谢谢Pujan,根据jpobst的提示,它可以使用或不使用端口号。端口号在Jabber引用中默认设置。
// 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();