클라이언트는 mfc로 서버는 C로 프로램을 짜고 싶습니다. ...

cccc2002의 이미지

서버에서 클라이언트로 데이터를 전송하는 프로그램을 짜고있습니다. 전송데이터는 명령어와 옵션정도임... 그래서 C로 서버쪽과 클라이언트 프로그래밍은 완성했는데 클리아언트 부분을 mfc를 이용해서 짜고 싶은데 mfc로 클라이언트를 만들면 서버쪽에서 mfc로 만들 프로그램과 문제는 없는지......
그리고 mfc로 만든 socket부분에 에러가 많다고 하는데 다른 방법이 있는지 고수님들의 가르침을 받고 싶습니다. 그럼 즐거운 하루되시길...

espereto의 이미지

서버와 클라이언트간에 Endian이 다르다면 문제가 생길 수 있습니다. 이건, 뭐로 만들던 마찬가지니 신경써서 작업하시는 수 밖엔...... 바이너리 데이터라면 상관없지만, short, int, long 처럼 여러 바이트로 구성되는 정수/실수 데이터 같은 경우는 바이트 순서가 뒤바뀌어 예상치 못한 값으로 처리될 수 있습니다.

그리고, mfc로 소켓 프로그래밍을 하시더라도 가능하면 윈속API를 써서 작업하시기 바랍니다. MFC의 CSocket 클래스가 문제가 많이 생긴다고들 하더군요.

제 경우, 윈도용/유닉스용/리눅스용 서버를 작성하는데, 윈도용의 경우 윈속API를 직접 이용했습니다. 이 경우 좋은 점이, 소켓 부분이 유닉스/리눅스와 크게 다르지 않아 소스 재사용이 가능하다는 점입니다. 그리고 MFC의 소켓 클래스에 비해 안정성도 좋고, 성능도 더 좋습니다.(쓸데없이 오버헤드가 걸리지 않으니까요.) 데브피아에서도 CSocket 클래스 쓰지 말고 윈속API 쓰라는 분들이 많더군요.

kuma의 이미지

MFC 는 옛날 Source 와의 호환을 위해서 WinSock Library 를 Version 1.1 을 사용하고, 현재 제공되어지는 마지막 버젼은 2.2 이며 대부분의 WinSock 은 이버젼으로 제작되어집니다..

MFC 의 초기화 루틴인 AfxSocketInit 를 보시면 WSAStartUp 에서 1.1 Version 의 Library 를 초기화 시킴을 볼 수 있습니다.

댓글 달기

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