소켓 연결을 통해 문자열 메시지를 수신하고 관련 파일 핸들에서 바이트를 수신 할 때 문자열을 만듭니다.CFSocket을 통해 FileHandle에서 NSData로 분리 된 문자열 메시지 읽기
[NSString stringWithCString:[data bytes] encoding:NSASCIIStringEncoding]
지금이 종류의 작품은 괜찮지 만, 나는이 문자열들을 올바르게 기록하기 위해 노력하지만 대부분 시간이 걸리지 만 가비지 문자가 생깁니다. 나는 위와 같은 utf8bytes와 ascii로 시도했다. (메시지는 ascii이다.)
은이 같은 통지를 통해 데이터를 수신하고 있습니다 :
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveData:) name:NSFileHandleDataAvailableNotification object:fileHandle];
[fileHandle waitForDataInBackgroundAndNotify];
내가 메시지 증가의 부하되면, 망가 문자열 부분이 로그에 표시한다고 가정. 메시지 자체는 깨끗하고 엄격하게 영숫자입니다 (플러스는 구분 기호 @ ";"와 점).
이상한 문자열 부분은 메시지와 아무 관계가 없으며 소켓을 사용하여 읽는 것이 잘못되었습니다. 데이터?
어떤 도움을 주실 수 있나요?
빠른 응답을 주셔서 감사합니다. 하지만 텍스트가 더 많거나 적게 연속적으로 들어오는 경우 언제 변환을 수행하는 것이 안전합니까? 데이터를 버퍼에 넣고 항상 다음 구분자까지 스캔 할 수 있지만 어쩌면 당신은 어떻게 나에게 힌트를 줄 수 있습니까? 이것을 접근하십시오. 스캐너가 문자열을 스캔하므로 변환 문제가 다시 발생합니다. 맞습니까? 문자에 대한 데이터 문자를 조사해야합니까? – DasAntonym
좋아, 나는 이것을 결국 통과 할거라 생각한다. 위와 같은 내용을 잊어 버리는 것은 제 전환에 문제가 있습니다. 도와 주셔서 감사합니다! – DasAntonym