在C#上编程信使电报的困难

本文关键字:信使 编程 | 更新日期: 2023-09-27 18:31:02

我尝试发送一个代码(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()));

在C#上编程信使电报的困难

你能调试你的代码并判断是否

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

连接[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();

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

TcpClient tcpClient = new TcpClient();

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

你可以

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

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

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

祝你好运