소켓 프로그램 할 시, loop 안에 있는 send 에 대해서

silzon의 이미지


안녕하세요.
근, 이틀동안 여러 싸이트를 검색 하다가, 도저히 안되서 KLDP 의 도움을 받고자 합니다. ㅠㅠ;
720*480* 1 Byte 의 영상을 소켓 프로그램을 이용해서 클라이언트쪽에 보낼려고 합니다.

다음과 같이 전송을 하면, 송/수신이 잘 됩니다.

int i;
for (i = 0; i < 48; i++)
{
send(720 * 1 * 1 Byte 전송)
sleep(1);
}

하지만, 아래와 같이 전송을 하면, Send Error 가 발생 합니다. ㅠㅠ

int i;
for (i = 0; i < 48; i++)
{
send(720 * 1 * 1 Byte 전송)
}

여러분들은 소켓 프로그램을 이용하여, 대용량의 데이터 (영상) 을 전송할 때 어떤 방식으로 하시나요?
저는 송신 버퍼 사이즈 때문에, 저렇게 쪼개서 보낼려고 하는데...
너무 빨리 send 를 해서 그런지, Error 가 발생 하는것 같습니다.

jick의 이미지

일단 어떤 에러가 발생하는지를 말해주셔야...... -.-;;;

그리고 버퍼사이즈 같은 건 커널에서 알아서 관리하므로 마지막 1%의 성능을 쥐어짤 게 아니면 신경쓰지 않으시는 게 좋습니다. 메모리가 연속으로 구성되어 있다면 720*480을 한번에 보내는 게 480번 보내는 것보다 아마도 성능이 훨씬 좋을 듯합니다.

(...하지만 저는 소켓 프로그램에 별 경험이 없으므로 다음 분이 확인해주실 겁니다... 후다다닥...)

antaran의 이미지

소켓버퍼가 풀나서 에러가 나겠지요. loop을 돌면서 아무짓도 안하고 send하면 날 수 밖에 없습니다.

예외 처리를 해주셔야 하고 아마 원활한 전송을 위해서는 그것만으론 부족할 겁니다.

영상전송을 스트리밍으로 하신다면 스트리밍 관련 프로토콜들이 여러가지가 있을 테니

스펙대로 구현을 하시던지 프로토콜 스택을 구입을 하시던지 해야 할 것 같네요.

어찌됬건 요략 드리자면,

1. 예외처리
2. 프로토콜 구입 / 구현(구현시에는 flow control도 포함되어야 할 것 같네요)

그럼 즐거운 하루 되세요. 이만...

M.W.Park의 이미지

return value를 꼭 체크하세요.
-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

haze11의 이미지

영상 전송을 할 때는..
TCP보다는 UDP로 보내는 것이 실시간 전송으로는 좋을 듯 한데요 =.=
RTP/RTCP 같은것도 알아보심이...

silzon의 이미지


댓글 다신 분들 도움으로 결국 해결 했습니다. ㅋㅋ
다들 감사합니다.~

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.