파이썬 소켓통신시 여러개 파일 보낼때

zhxk123의 이미지


파이썬으로 소켓통신 서버와 클라이언트를 만들고 있는데
파일을 주고 받는 부분에서

open = (name,'wb')을 이용한 파일1개의 송수신은 작동하는데

폴더내의 여러개의파일 ex) C\aaa\bbb 내의 name1,name2....10까지의 파일을

순서대로 보낼려고 하는데요.for문을 사용하여 이름을 읽어와서

보내는건 작동하는것같은데

받는쪽에서 어떤식으로 받아야할지 모르겠습니다.

받는쪽에서도 for문을 이용하여 받아봤는데 받는쪽 파일은 ex)) test1,~10까지 생성은되는데

name1~10의 데이터가 test1에 다들어가 있고 2~10은 아무런 내용이 없더라구요.

조언좀 부탁드립니다.

shint의 이미지

파이썬 채팅'으로 찾아보시면. 예제소스가 있네요.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

twinwings의 이미지

App수준의 통신 프로토콜을 정의 하셔야 합니다.

아마도 송신 과정이

1. 파일을 읽는다. 파일이 없으면 끝낸다.
2. 보낸다.
3. EOF를 만나면 다음 파일을 읽는다.
4. '1'로 돌아간다.

여기서 수신측에서 파일이 끝났다는 정보를 알 수 있을까요? 없습니다.

따라서 간단한 프로토콜이 필요하겠죠. 송신할 때 파일의 크기도 같이 보내서

수신측에서 파일을 "끊어서" 쓸 수 있도록 만들어야 합니다.

예를 들어 파일을 전송할때 단순히 파일을 읽고 송신하는게 아니라 간단한 예를 들면

[전송할 파일의 개수 송신]
[파일의 정보(용량, 이름 등의) 송신] - > 파일전송 -> [파일 전송끝 알림]
[파일의 정보(용량, 이름 등의) 송신] - > 파일전송 -> [파일 전송끝 알림]
[파일의 정보(용량, 이름 등의) 송신] - > 파일전송 -> [파일 전송끝 알림]
...
[파일의 정보(용량, 이름 등의)] - > 파일전송 -> [파일 전송끝 알림]
[통신 종료를 나타내는 메세지 송신]

이러한 정보를 사전에 서버-클라이언트간에 정의해서 통신하셔야 합니다.

cat90129의 이미지

파일의 전송끝 알림은 예를 들면 어떻게 데이터를 보내줘야할까요..?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.