我有把数据和数据发送到TCP服务器的奇怪问题。 我的代码是用C和Objective-C编写的。 我发送信息后,我以相同的方式发送数据。
TCPClient *tcp = [[TCPClient alloc] init];
TCPResponse c = [tcp connectWithHost:@"127.0.0.1" onPort:@"2506" withTimeout:30];
TCPResponse sendInfo = [tcp sendString:msg];
TCPResponse send = [tcp sendData: data];
sendInfo很好,但另一个......
const void *dataBytes = [data bytes];
unsigned long length = [data length];
//NSLog(@"[####]\n %s [%ld][%ld]", dataBytes, sizeof(dataBytes), [data length]);
ssize_t bytes_sent = send(_sockfd, dataBytes, length, 0);
if (bytes_sent < length) {
/* Se não enviar: retorna erro */
return [TCPClient setupError:errno withDefault: TCPResponseErrorToSend];
}
如果注释行被注释,我在服务器中有错误,如果没有,数据就可以了。 如果我把睡眠代替注释行,数据就可以了。
我的服务器是用Java实现的。
谢谢。