5

我尝试发送代码(TLRequestAuthSendCode),但没有发送。可能有什么问题?

部分代码:

TLContext tlContext = new TLApiContext();
TcpClient tcpClient = new TcpClient();
tcpClient.Connect(connections[0].getAddress(), (int)connections[0].getPort());
TLRequestAuthSendCode tlRequestAuthSendCode = new TLRequestAuthSendCode("PHONE_NUMBER",
0, 19114, "TOKEN", "en");
tlRequestAuthSendCode.serializeBody(new StreamWriter(tcpClient.GetStream()));
4

3 回答 3

2

你能调试你的代码并告诉你是否

tcpClient.Connect(connections[0].getAddress(),

Connections[0] 有值吗?

我建议您将代码更改为以下内容:

        public void run() {
        connections = new ConnectionInfo[]{
            new ConnectionInfo(1, 0, "149.154.167.40", 443)
        };

        apiState = new ApiState(connections);
        doReqCode(connections);

        private void doReqCode(connections){

        var args = new SocketAsyncEventArgs();

我看不出代码可能在哪里中断,也许对您的问题进行更详细的描述会有所帮助

于 2015-03-03T19:48:43.833 回答
1

TcpClient tcpClient = new TcpClient();

当我尝试代码时,在我看来,端口要么被阻塞,要么已经在使用中。也许你在那里有权限问题。至少我没有设法让一个套接字来处理这样的代码。此外,我没有深入研究您的代码,但您使用的是端口 443。这是一个访问受限的保留端口。

于 2015-03-03T09:18:09.717 回答
0

你可以从这个开始,但我是用 vb.net 编写的,而不是 C#。

它将引导您从头开始构建您自己的 Telegram-API。

还要尝试熟悉在线文档,这很难,但是我在上面那个链接中给出的关于生成AuthKey的分步解释应该可以帮助您入门。

祝你好运

于 2015-09-30T18:34:48.397 回答