모두. 나는 네트워크 프로그래밍의 초보자이다. 현재 Android 휴대 전화에서 Ubuntu 서버로 파일 (~ 2M 바이트)을 전송하는 실험을하고 싶습니다. 어떻게 최고 속도로 보낼 수 있습니까? 나는 Java에서 Bufferedreader를 사용하고, 파일에서 각 바이트를 읽고 소켓 "outputstream write"함수를 통해 서버에 단일 바이트를 보내는 것과 같은 것을 시도했다. 이 방법은 너무 많은 시간을 들여야하는 것처럼 보입니다. 동일한 네트워크 상태에서 Skype와 같은 일부 즉각적인 Messenger 도구를 사용하여 같은 파일을 보내면 내가했던 것보다 훨씬 빠릅니다. 아무도 인스턴트 메신저 소프트웨어 아래에 API 또는 구현 프로토콜을 알고 있습니까?WIFI를 통한 고속 파일 전송
소켓 이외의 다른 효율적인 API를 호출해야 할 필요가 있습니까? 나는 또한 바이트 배열로 전체 파일을 읽으려고하고 "소켓 쓰기"함수를 호출하여 서버에 거대한 바이트 배열을 보낸다. 단 하나의 time.Although 때 서버 쪽에서 많은 것을 발견했다. "패딩 제로 (padding zeros)"가 원본 데이터에 분산되어 있기 때문에 전체 전송은 "단일 바이트 전송"방법보다 시간이 덜 소요됩니다. 아무도 이것에 대한 조언이 있습니까? 고마워요!
"패딩 0"에 대해 말하는 것은 의미가 없습니다. 버퍼의 크기가 아닌 모든 읽기 값을 반환해야합니다. 예를 들어'bRead = socket.read (buffer, 0, sizeof (buffer));'와 같이하면 bRead 바이트를 버퍼 크기가 아닌 파일에 써야합니다. –