간단히 말하면 네트워크 전송 중에 TCP 연결이 잘못되었지만(주로 데이터 전송을 최적화하기 위해) TCP에는 해당 "정렬" 처리가 있으므로 동일한 연결(클라이언트 A와 서버 S 등)에 대해 이 연결은 ), TCP 소켓의 하위 계층에서는 a, b, c 순서로 전송하면 수신자는 a, b, c를 순서대로 수신하게 됩니다. 이는 UDP에 비해 TCP의 장점이기도 합니다.
따라서 귀하의 문제는 GCDAsyncSocket 문제가 아니어야 합니다.
소켓은 특정 비즈니스 로직 없이 데이터만 보내고 받기 때문에 소켓 애플리케이션은 일반적으로 다양한 매개변수를 구분 기호로 연결하거나(예: 파일 이름 | 파일) 공통 형식 xml을 사용하는 등 자체 데이터 형식을 갖습니다. 또는 json 등을 사용하여 쉽게 구문 분석할 수 있습니다( {"filename": "", "data": ""} ). 동시에 MTU 제한으로 인해 전체 비즈니스 데이터가 압축 해제되어 전송될 수 있으며, 네트워크 문제로 인해 패킷 손실이 발생할 수 있으므로 "소켓 데이터 길이" 매개변수가 사용자 정의 데이터 형식에 추가됩니다. , HTTP POST의 Content-Length와 유사하게 일반적으로 전체 후속 소켓 데이터의 길이를 표시하기 위해 데이터 조각의 시작 부분에 추가됩니다. "길이" 매개변수는 데이터 형식에 참여하지 않습니다. "소켓 데이터 길이" 매개변수는 양 당사자가 합의한 특정 하위 섹션 길이로 표시됩니다. 수신기가 데이터를 처리할 때 먼저 처음 몇 비트의 "길이"를 구문 분석한 다음 이 길이를 기반으로 후속 완전한 데이터를 결정합니다.
소켓 개발 중 문제가 발생하고 원인을 명확하게 알 수 없는 경우 먼저 패킷을 캡처하여 분석하여 데이터가 어떻게 전송되는지 확인하고 네트워크 장애를 해결한 후 발신자인지 여부를 확인하는 것이 좋습니다 문제이거나 수신기 문제입니다. 송신자와 수신자 모두 문제가 없고, 서비스 코드에도 문제가 없다면 마지막으로 라우터, 사업자 등 '네트워크 프록시'에 대한 이유를 확인해 보는 것도 고려해 보세요. 중국 네트워크의 중간 계층.
간단히 말하면 네트워크 전송 중에 TCP 연결이 잘못되었지만(주로 데이터 전송을 최적화하기 위해) TCP에는 해당 "정렬" 처리가 있으므로 동일한 연결(클라이언트 A와 서버 S 등)에 대해 이 연결은 ), TCP 소켓의 하위 계층에서는 a, b, c 순서로 전송하면 수신자는 a, b, c를 순서대로 수신하게 됩니다. 이는 UDP에 비해 TCP의 장점이기도 합니다.
따라서 귀하의 문제는 GCDAsyncSocket 문제가 아니어야 합니다.
소켓은 특정 비즈니스 로직 없이 데이터만 보내고 받기 때문에 소켓 애플리케이션은 일반적으로 다양한 매개변수를 구분 기호로 연결하거나(예: 파일 이름 | 파일) 공통 형식 xml을 사용하는 등 자체 데이터 형식을 갖습니다. 또는 json 등을 사용하여 쉽게 구문 분석할 수 있습니다( {"filename": "", "data": ""} ). 동시에 MTU 제한으로 인해 전체 비즈니스 데이터가 압축 해제되어 전송될 수 있으며, 네트워크 문제로 인해 패킷 손실이 발생할 수 있으므로 "소켓 데이터 길이" 매개변수가 사용자 정의 데이터 형식에 추가됩니다. , HTTP POST의 Content-Length와 유사하게 일반적으로 전체 후속 소켓 데이터의 길이를 표시하기 위해 데이터 조각의 시작 부분에 추가됩니다. "길이" 매개변수는 데이터 형식에 참여하지 않습니다. "소켓 데이터 길이" 매개변수는 양 당사자가 합의한 특정 하위 섹션 길이로 표시됩니다. 수신기가 데이터를 처리할 때 먼저 처음 몇 비트의 "길이"를 구문 분석한 다음 이 길이를 기반으로 후속 완전한 데이터를 결정합니다.
소켓 개발 중 문제가 발생하고 원인을 명확하게 알 수 없는 경우 먼저 패킷을 캡처하여 분석하여 데이터가 어떻게 전송되는지 확인하고 네트워크 장애를 해결한 후 발신자인지 여부를 확인하는 것이 좋습니다 문제이거나 수신기 문제입니다. 송신자와 수신자 모두 문제가 없고, 서비스 코드에도 문제가 없다면 마지막으로 라우터, 사업자 등 '네트워크 프록시'에 대한 이유를 확인해 보는 것도 고려해 보세요. 중국 네트워크의 중간 계층.