IPC 1:n 서버, 클라이언트 구성?

익명 사용자의 이미지

안녕하세요..고수님들.

제가 리눅스 프로그램한지 별루 안돼여...
그래서 고수님들의 조언을 듣고자 합니다.

먼저, 공유메모리나 메시지큐를 이용한 TCP/IP소켓과 같이 서버, 클라이언
트구성을 하고싶습니다.

즉 1대 n 구성이죠...중요한것은 소켓처럼 클라이언트가 정상적으로 종료
되든 아니면 비정상적으로 종료되면 서버가 인지를 해야 되는데 방법이 없
을까요?
소켓을 이용하면 금방 해결되겠지만,,,공유메모리나 메시지큐를 사용하고
싶거든요...

공유메모리나 메시지 큐로 프로그래밍을 해봤는데 위와 같이 구현하기 어
렵군요...부탁합니다. 많은 조언 부탁할께여...

익명 사용자의 이미지

상대가 죽었는지 어떤지를 알려면...

Select를 사용해야 하고 이 Select는 FIFO, Socket, Pipe에서 작동합니다.

지금 님이 원하시는 것은 아마도 한 Machine에서 1n 서버를 구현하면서
Server가 Client의 상태를 알수 있는 방법이 없을까 하는 것같습니다만..

그럴려면 FIFO밖에는 달리 더 좋은 방법이 없을 것 같네요.

말씀하신 Shared Memory나 Message Queue로는 않 될 것 같습니다.

익명 사용자의 이미지

FIFO가 좋기는 합니다.
기본적으로 FIFO에 클라이언트로 접근했는데,
서버가 죽으면 클라이언트측에서는 SIGPIPE를
받아볼수 있으니, 관리도 쉽게 할수 있을거구요.
그러나 FIFO자체가 선입선출 방식이기 때문에
다중의 클라이언트를 처리할때 메시지를
클라이언트 별로 처리가 어렵다는 단점이 있습니다.
서버에서 받는거라면 클라이언트가 많아도 문제가
없겠지만, 클라이언트에 선별적으로 메시지를 보내고자 할때는 문제가 됩니다. 누가 메시지를 받을지
알수가 없거든요.

그래서 보통 각 클라이언트마다 FIFO를 생성시키는 방법을 씁니다. 무난하긴 하지만 음 좀 지저분해 진다라는 단점이 있지요.

익명 사용자의 이미지

"

댓글 달기

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