首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TeamSpeak 3 SDK连接问题

TeamSpeak 3 SDK连接问题
EN

Stack Overflow用户
提问于 2016-03-27 19:32:09
回答 1查看 1.2K关注 0票数 3

我试图在个人项目中使用TeamSpeak SDK,但我编写的代码给我带来了奇怪的错误。

我多次阅读文档以查找错误,但我不明白为什么我的程序无法连接到TeamSpeak服务器。

下面是程序的输出:

代码语言:javascript
复制
Client library version: 3.0.3.2 [Build: 1433933257] SDK
Connection Status changed to: 1, errorNumber: 0
Connection Status changed to: 0, errorNumber: 1797
failed connection initialization

这是程序代码

代码语言:javascript
复制
#include <iostream>
#include <fstream>
#include <cstring>
#include <teamspeak/clientlib.h>
#include <teamspeak/public_errors.h>

uint64 connectionHandler;

void destroy();

void event_connectStatusChanged(uint64 serverConnectionIDHandler, int newStatus, unsigned int errorNumber);
void event_serverError(uint64 serverConnectionHandlerID, const char* errorMessage, unsigned int error, const char* returnCode, const char* extraMessage);

int main()
{
    ClientUIFunctions uiFunctions;
    memset(&uiFunctions, 0, sizeof(struct ClientUIFunctions));

    uiFunctions.onConnectStatusChangeEvent = event_connectStatusChanged;
    uiFunctions.onServerErrorEvent = event_serverError;

    unsigned int error = ts3client_initClientLib(&uiFunctions, NULL, LogType_FILE, NULL, "./");

    if (error != ERROR_ok)
            printf("Error initializing clientlib: %i\n", error);

    char* version;
    error = ts3client_getClientLibVersion(&version);
    if (error != ERROR_ok) {
            printf("Error querying clientlib version: %d\n", error);
            return 0;
    }

    printf("Client library version: %s\n", version);  /* Print version */
    ts3client_freeMemory(version);  /* Release string */

    if (ts3client_spawnNewServerConnectionHandler(0, &connectionHandler) != ERROR_ok)
    {
            destroy();
            return 0;
    }

    char* identity;
    ts3client_createIdentity(&identity);
    error = ts3client_startConnection(connectionHandler, identity, "127.0.0.1", 9987, "test", NULL, "", "");
    ts3client_freeMemory(identity);

    if (error != ERROR_ok)
            std::cout << "Connection failed!" << std::endl;

    getchar();

    ts3client_stopConnection(connectionHandler, "...");

    destroy();
    return 0;
}

void event_connectStatusChanged(uint64 serverConnectionIDHandler, int newStatus, unsigned int errorNumber)
{
      printf("Connection Status changed to: %i, errorNumber: %i\n", newStatus, errorNumber);
      if (errorNumber != ERROR_ok)
      {
              char* error;
              ts3client_getErrorMessage(errorNumber, &error);
              std::cout << error << std::endl;
              ts3client_freeMemory(error);
      }
}

void event_serverError(uint64 serverConnectionHandlerID, const char* errorMessage, unsigned int error, const char* returnCode, const char* extraMessage)
{
      std::cout << "ERROR: " << errorMessage << std::endl << "Extra Message: " << extraMessage << std::endl;
}

void destroy()
{
      ts3client_destroyServerConnectionHandler(connectionHandler);
      ts3client_destroyClientLib();
}
EN

回答 1

Stack Overflow用户

发布于 2018-04-28 20:06:38

似乎您的客户端在连接时立即崩溃。

以下是一些需要检查的常见原因:

  • 服务器在那个地址不存在。
  • 服务器密码错误。
  • 默认通道不存在。
  • 客户已经被禁止。
  • 服务器是非法安装。
  • 你身份的安全级别太低了。

此外,当需要更新客户端、服务器等组件时,可能会触发此错误:

我更新到了最新版本,因为机器人不会启动,我想我会在我的另一台服务器上再试一次。现在已经完美无缺了。

参考文献:https://forum.sinusbot.com/threads/new-connection-status-0-error-1797.2508/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36251685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档