c++ - 서버가 얼마나 많은 데이터를 반환하는지 모르겠습니다. PHP의 소켓_read()는 어떻게 전체 데이터를 수신합니까?
淡淡烟草味2017-05-16 13:09:13
0
1
611
서버에서 보낸 데이터가 항상 클라이언트가 한 번에 감당할 수 있는 최대 바이트 수를 초과하는 경우, 클라이언트는 소켓 읽기 작업을 수행하지 않고 수신된 데이터가 완전한지 어떻게 확인할 수 있습니까? ? /n으로 구성됩니다. 서버의 데이터를 읽기 위해 while 루프를 사용해 보았으나 동작에 문제가 있었습니다.
짧은 링크인 경우, 소켓 링크를 비차단으로 설정하기 위해 소켓_set_nonblock을 사용하고, 반환 값 길이가 0이 되면 루프에서 빠져나와 수신이 종료됩니다. 어떤 경우에는 문제가 발생합니다).
오류가 발생하지 않도록 서버측에서 데이터 길이를 지정하는 것이 가장 좋습니다.