2017-05-11 7 views
0

프로그래밍 파이썬 서버와 안드로이드 클라이언트. 프로그램 논리가 클라이언트가 여러 파일을 서버로 보냅니다.
먼저 C/C++ 소켓 서버를 시도하지만 오류가 발생합니다. 그래서 나는 파이썬을 바꾼다. 라스베리 파이에 서버가 있기 때문입니다.
파일 업로드, 오디오 스트리밍을 구현해야합니다. 그래서 나는이 논리를 생각한다.

1. 클라이언트가 서버에 http 요청을 보냅니다.
2. 서버가 요청을 받으면 서버가 tcp socket을 작성하고 수신합니다.
3. 클라이언트가 성공 응답을 받고 서버에 연결하고 파일을 업로드합니다.

오디오 스트리밍은 비슷한 방식으로 구현됩니다.

이렇게 구현해도 괜찮습니까? 또는 더 좋은 방법이 있습니까?
구현 방법을 알려주세요.파이썬 서버를위한 최상의 솔루션 파일 업로드는 무엇입니까

+0

개조 시도, 그 달콤한 라이브러리 –

+0

먼저 서버 소켓을 구현하고 클라이언트에서 서버로 요청을 보낸 다음 핸드셋으로 응답을 보내십시오. – Rajput

+0

@Rajput 파일 업로드, 오디오 스트리밍을 처리해야합니다. 메시지와 데이터를 어떻게 구별합니까? – PurMir

답변

0

소규모 배포만큼 소켓을 무시하십시오. 그들은 다루기가 조금 더 복잡합니다.

는 이제 필요가없는 것보다, 클라이언트에서 서버로 오디오를 업로드 할 경우, 이미지 파일이나 오디오에 Flask Upload

다음 이동을 사용할 수있는 파이썬에 다른 파일을 업로드 할 asuming 스트리밍하거나 물건을 보내려면 업로드 중에 적절한 MIME 유형을 전달하십시오.

ALLOWED_AUDIO_EXTENSIONS = set(['wav', 'ogg', 'mp3', ]) 

def audio_file(filename): 
    return '.' in filename and \ 
      filename.rsplit('.', 1)[1].lower() in ALLOWED_AUDIO_EXTENSIONS 

if file and audio_file(file.filename): 
    filename = secure_filename(file.filename) 
    #perform some application logic with audio files and then save them in file system or call boto3 to save on s3 

    file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) 
    return redirect(url_for('uploaded_file', 
            filename=filename)) 

코드가 플라스크 예제에서 수정되었습니다.