gpt4 book ai didi

ios - 无法使用 GCDAsyncSocket 从服务器读取数据

转载 作者:行者123 更新时间:2023-12-03 16:54:54 29 4
gpt4 key购买 nike

我尝试连接到服务器并向服务器发送一些信息(例如用户名、密码..),然后服务器向我发送回 ID(字符串类型)。问题是我拿不到身份证。有人可以帮助我吗?我是 IOS 编码的初学者。谢谢。

代码如下:

  1. 点击按钮后,它会调用我自己的函数来获取 serverIP(字符串)和 Port(整数)。
  2. 然后该函数将调用此函数来连接服务器:

    (void)logInCheck {

    asyncSocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
    NSError *error = nil;
    uint16_t port = serverPort;

    if (![asyncSocket connectToHost:serverIP onPort:port error:&error])
    {
    DDLogError(@"Unable to connect to due to invalid configuration: %@", error);
    }
    else
    {
    DDLogVerbose(@"Connecting...");
    [self passDataToServer];
    }
    }

    //DataPassToServer is a NSString that hold my data

    (void)passDataToServer
    {
    NSData *requestData = [DataPassToServer dataUsingEncoding:NSUTF8StringEncoding];
    [asyncSocket writeData:requestData withTimeout:-1.0 tag:0];
    [asyncSocket readDataWithTimeout:-1 tag:0];
    }

    //this function call successfully

    -(void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port
    {
    DDLogVerbose(@"socket:didConnectToHost:%@ port:%hu", host, port);
    }

    //this function call successfully

    (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag
    {
    DDLogVerbose(@"socket:didWriteDataWithTag:");
    }

    //This function does not run !!! Nothing print out.

    (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag
    {
    DDLogVerbose(@"socket:didReadData:withTag:");
    NSString *response = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"ID = %@",response);
    [asyncSocket readDataWithTimeout:-1 tag:0];
    }

最佳答案

我不知道您的服务器实现,但是大多数实现都会在处理请求之前读取第一个换行符。

因此,请确保您的 [DataPassToServer dataUsingEncoding:NSUTF8StringEncoding] 在末尾包含换行符 ("\n")。

您的代码看起来不错并且适合我。

关于ios - 无法使用 GCDAsyncSocket 从服务器读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12310148/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com