소켓통신 질문좀요

minsktown의 이미지

소켓통신 모델중에
클라는 비동기 서버는 동기
클라는 동기 서버는 비동기 뭐 이런식으로 서로 다른 방식으로 통신을 하는 경우가 있나요?
있으면 언제 저런방식을 사용하는지 알고 싶습니다.
쉬운 예가있으면 들어주셔도 되고요 ㅎㅎ;

요즘 비동기 방식 공부중인데..
물론 코딩도 어렵지만 이걸 언제 어떻게 왜 사용해야되는지를 구분하는게 더 어려운것 같습니다

emptynote의 이미지

부족한 지식 과장되게 설명하겠습니다.

===>>> 잘못된 내용을 사실처럼 말할 수 있으니 주의하시기 바랍니다. <<<=====

동기 방식으로 동작하는 소켓의 기본 동작은 하나의 쓰레드(?)에서 "가" 라는 메시지를 보내고 그 응답 메시지 "응답-가" 를 받을때까지 기다리는 방식입니다.

반면 비동기 방식으로 동작하는 소켓의 기본 동작은 메시지를 보내는 곳(=쓰레드?)과 응답 메시지를 받는곳(=쓰레드?)가 다르기에 메시지를 보내는것과 받는것이 별개로 동작됩니다.

저두 최근(?)에 파일 송수신하는 비동기 서버와 비동기/동기 클라이언트를 구현해서 파일 업로드/다운로드를 직접 수행해 봤는데요.

비동기식 장점은

동기식은 현재 파일 조각을 잘 받았다는 수신을 받은후에야 다음 파일 조각을 보내게 됩니다.

반면에 비동기식은 그냥 쭉 보내면 됩니다. 따라서 대용량 파일을 아주 잘게 쪼개서 보낼 수록 전체 수행 시간 차이는 많이 벌어집니다.

2-3Gbyte 파일 1개를 대략 4kbyte 로 쪼개서 보낼경우 그 차이를 분명히 알 수 있었습니다.

다만 쪼개는 크기를 30~40Kbyte 로 보낼 경우 정확한 이유를 모르겠지만 체감을 느낄정도로 차이가 나지 않았습니다.

비동기식 단점으로는 에러 제어가 어렵다는 점입니다.

혹시 자바라는 언어를 아시면 제가 만든 프로그램에서 이것을 보여드릴 수 있는데요.

관심 있으시면 댓글로 남겨주세요.

minsktown의 이미지

혹시 지금이라도 말씀하신 프로그램을 좀 볼수 있을까요? ㅎㅎ;

안년ㅇ

댓글 달기

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