2012-01-24 1 views
0

로 남았습니다. 저는 꽤 좌절감을 느끼고 있습니다. TCP 서버가있는 곳에서 몇 대의 장치가 연결되어 있습니다. 내 아이폰을 직접 연결하여 내 Mac에서 @ som으로 직접 실행할 수 있도록 내 아이폰을 연결하고 싶었습니다.IOS 5의 TCP 클라이언트, 이전 문자열의 일부가 NSStream

내 아이폰에 대한 tcp 클라이언트는 하나의 오류를 제외하고는 꽤 잘 작동한다. 전송 한 각 문자열에 대한 출력 스트림을 지우지 않는다. 여기에 내가 지금까지

  • 확인 모든 것을 내 아이폰 클라이언트에서 "브라우저를 시작합니다"하고 메시지 내 Mac에서 팝업
  • 보내 명중 입력

    1. 와 내가 데 문제의 예입니다 내가 "B"를 내 아이폰에서 다른 명령을 전송하고 입력합니다 다음 될 것입니다 아이폰에
    2. 출력을 보내 공격 "Btart 브라우저"는 캐시 또는 뭔가 이전의 문자열을 유지 것처럼 보인다
    3. .

    누구에게 설교가 있습니까? 모든 코드를 볼 필요가있는 경우 모든 도움을 주시면 감사하겠습니다.

  • 답변

    0

    짐작할 수있는 코드가 없지만이 코드는 문자열 입력을 처리하는 버그처럼 보입니다. NSMutableString/NSMutableData를 사용하여 입력을 저장하는 경우 명령을 수락 한 후에 해당 입력을 지웠는지 확인하십시오. 이제 실제로 처음부터 지우지 않고 시작 부분을 덮어 쓴 것처럼 보입니다.

    +0

    안녕하세요. 답변 해 주셔서 감사합니다. 이것은 문자열을 보내는 데 사용하는 코드입니다. [코드]/* NSString * 응답 = [NSString stringWithFormat : @ "% @ \ n", text.text]; text.text = @ ""; \t NSData * data = [[NSData alloc] initWithData : [응답 데이터 사용 인코딩 : NSUTF8StringEncoding]]; \t [출력 스트림 쓰기 : [데이터 바이트 수] maxLength : [데이터 길이]]; [text resignFirstResponder]; 응답 = @ ""; [/ code] – ImmortalJ

    0

    문제의 원인은 내 서버 소프트웨어가 데이터 스트림을 비우지 않아서였습니다. 서버 측에서 스트림을 비울 때 완벽하게 작동했습니다.