0
tcp/ip 연결을 생성하여 목적면 c에서 서버 측에서 파형을 생성하는 일부 16 진수 패킷을 보내려고합니다. 내 문제는 데이터를 보낼 수 있다는 것입니다. 서버 측에서도 파형을 볼 수 있습니다.하지만 네트워크 지연으로 인해 파형이 겹치기 때문에 (서버가 5 분마다 패킷을 동기화하려고하는 이유가 무엇인지) 여기에 내 질문 패킷이 동기화 될 때까지 내가전체 데이터를 보낼 때까지 dispatch_queue를 차단하십시오.
dispatch_queue_t connectionTest=dispatch_queue_create("myQueue", DISPATCH_QUEUE_SERIAL);
dispatch_async(connectionTest, ^{
if(outputStream)
{
NSInteger sizeOfPacket=13;
unsigned char myPacket[13];
unsigned char crcCal=0;
myPacket[0]=START_OF_HEADER;
myPacket[1]=START_OF_TEXT;
myPacket[2]=8;
myPacket[3]=0x6a;
myPacket[4]=0x06;
myPacket[5]=0x80;
myPacket[6]=Some value;//
myPacket[7]=0x80;
myPacket[8]=Some value;//
myPacket[9]=0x54;//changed 54 to 50
myPacket[10]=0x04;
for (int j=3;j<myPacket[2]+3;j++)
{
crcCal=crcTable[crcCal^myPacket[j]];
}
myPacket[11]=crcCal;
myPacket[12]=END_OF_TEXT;
NSLog(@"crc value is %c",crcCal);
NSData* dataPacket = [NSData dataWithBytes:(const void *)myPacket length:sizeof(unsigned char)*sizeOfPacket];
[outputStream write:[dataPacket bytes] maxLength:[dataPacket length]];
}
});