Tôi đang tạo trò chơi nhiều người chơi bằng cách sử dụng MPCF. Bạn kiểm soát một không gian trên iPad bằng cách sử dụng iPhone.Tắt thuật toán của Nagle cho NSOutputStream
Tôi đang trải qua nhiều độ trễ và độ trễ khác nhau và đệm/tạm dừng vào các khoảng thời gian và khoảng thời gian ngẫu nhiên và hiện đã hạ cánh trên giấy Táo Technical Q&A NW26 nói về việc tắt thuật toán Nagle. Tôi đang thử nó nhưng chương trình của tôi vẫn bị treo và tôi không hiểu tại sao. Dường như CFWriteStreamCopyProperty luôn trả về NULL.
- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode
{
switch (eventCode) {
case NSStreamEventOpenCompleted:
// Trying to get a handle to the native socket
CFSocketNativeHandle rawsock;
// This always return NULL
CFDataRef socketData = CFWriteStreamCopyProperty((__bridge CFWriteStreamRef)(stream), kCFStreamPropertySocketNativeHandle);
// And this row always crash (coz of socketData being NULL i guess)
CFDataGetBytes(socketData, CFRangeMake(0, sizeof(CFSocketNativeHandle)), (UInt8 *)&rawsock);
CFRelease(socketData);
// Code example from Apple that need a handle to the native socket, that I am trying to get above
int err;
static const int kOne = 1;
err = setsockopt(rawsock, IPPROTO_TCP, TCP_NODELAY, &kOne, sizeof(kOne));
if (err < 0) {
err = errno;
}
break;
default:
break;
}
}
Mọi trợ giúp đều được đánh giá cao.
Bạn đã bao giờ tìm được giải pháp cho điều này chưa? Tôi cũng đang cố gắng giảm độ trễ và không sử dụng ' sendData: toPeers: withMode: error: 'với' MCSessionSendDataUnreliable' vì vậy tôi có thể tránh xử lý việc mất gói tin ... – jou
Không, xin lỗi. Đã chuyển sang Bluetooth LE. – bobmoff
Quá tệ ... Cảm ơn bạn đã trả lời. – jou