如何解决如何完成授权电报API作为客户端在C?
我有以下代码可与电报api交互,作为客户端,用于创建ayth_key以便将第一条传输消息发送到电报服务器,如以下链接中所述:
#include <stdio.h>
#include <string.h> //strlen
#include <sys/socket.h>
#include <arpa/inet.h> //inet_addr
#include <stdint.h>
#include <time.h>
#include <math.h>
#include <unistd.h>
int main(int argc,char *argv[])
{
int socket_desc;
struct sockaddr_in server;
char server_reply[10240]={'\0'};
//Create socket
socket_desc = socket(AF_INET,SOCK_STREAM,0);
if (socket_desc == -1)
{
printf("Could not create socket");
}
server.sin_addr.s_addr = inet_addr("149.154.167.50");
server.sin_family = AF_INET;
server.sin_port = htons(443);
//Connect to Remote Server
if (connect(socket_desc,(struct sockaddr *)&server,sizeof(server)) < 0)
{
puts("connect error");
return 1;
}
puts("Connected\n");
char msg[42];
msg[0] = 0xef;
msg[1] = 10;
char aaa = 0;
for (int i = 2; i < 10; i++)
{
msg[i] = (char)aaa;
}
time_t Now = time(NULL);
printf("%ld\n",Now);
int64_t i2 = (int64_t)Now * pow(2,32);
printf("%ld\n",i2);
char *m = (char *)&i2;
for (int i = 10; i < 18; i++)
{
msg[i] = *(m++);
}
int llen = 20;
char *m2 = (char *)&llen;
for (int i = 18; i < 22; i++)
{
msg[i] = *(m2++);
}
char req[4]= {0x78,0x97,0x46,0x60};
int o = 0;
for (int i = 22; i < 26; i++)
{
msg[i] = req[o];
o++;
}
char tt[16];
tt[0] = 62;
tt[1] = 5;
tt[2] = 73;
tt[3] = 130;
tt[4] = 140;
tt[5] = 202;
tt[6] = 39;
tt[7] = 233;
tt[8] = 102;
tt[9] = 179;
tt[10] = 1;
tt[11] = 164;
tt[12] = 143;
tt[13] = 236;
tt[14] = 226;
tt[15] = 252;
int j = 0;
for (int i = 26; i < 42; i++)
{
msg[i] = tt[j];
j++;
}
for(int k = 0;k<42;k++)
{
printf("%X",msg[k]);
}
if (send(socket_desc,(char *)msg,40,0) < 0)
{
puts("Send Failed");
return 1;
}
puts("\nData Send\n");
if (recv(socket_desc,server_reply,10240,0) < 0)
{
puts("recv Failed");
}
puts("Reply received\n");
for(int k = 0;k<10240;k++)
{
printf("%X",server_reply[k]);
}
return 0;
}
但是我没有任何结果! 为什么?我的代码有什么问题? 我简化代码以更好地了解自己...
我还在第一个字节中添加了0xef并在第二个字节中添加了代码长度,任何事情都与我最初提到的那个链接中的示例相同 谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。