Win32, Unix-C를 이용한 Socket에 대한 질문

익명 사용자의 이미지

일단 Peudo Code를 보십시요.
---------------------------------------------------------------------
-----
SERVERWin32(Window)

HANDLE hSocket, Socket;

Socket = socket(...);
Sockaddr 구조체 초기화;
bind(Socket...);
listen(Socket, ..);
while(1)
{
hSocket = accept(Socket...);
wsprintf(szCmdLine, \"child.exe %x\", hSocket);
....
BOOLEAN bStatus = CreateProcess(NULL, szCmdLine, NULL,,
NULL, TRUE,

NORMAL_PRIORITY_CLASS,
NULL, NULL, &si,
&pi);
CloseHandle(hSocket);
}

---------------------------------------------------------------------
--------
child.exeWin32(Window)
HANDLE hSocket;
int count = sscanf(argv[1], \"%x\", &hSocket);
주고 받고...
---------------------------------------------------------------------
--------
CLIENTUnix-C(linux)
int sockfd;

sockfd = socket(AF_INET, SOCK_STREAM, 0);
connet(sockfd,...);
주고받고....
---------------------------------------------------------------------
---------

여기서!....

저는 child.exe를 Win32가 아닌 VB를 이용해서 구현하고 싶습니다.

그런데 문제는...SERVER에서 주는 socket HANDLE 즉, hSocket을 어떻게 인
자로 받을
수 있을까 하는 것입니다.

Win32에서는 가능하겠지만 과연 VB에서도 win32 WinMain의 LPSTR
lpszCmdParam처럼
명령형인자를 통하여 Socket Descriptor를 전달받을 방법이 있을까 하는
것입니다.

여기에 대해서 아시는 분이 있다면 대답해 주시면 고맙겠습니다.

(다소 게시판 성격에 않 맞을 수도 있으나 저와 비슷한 고민을 가지고
있는 분이 많으리라 생각되어 글을 올리니 너그러이 봐주셨으면 합니다)

익명 사용자의 이미지

인자를 받는부분만 dll로 만들어서 VB랑 인터페이스 하면 되지 않나요?

익명 사용자의 이미지

VB에서 COMMAND라는 걸 이용하면 string 형으로 인자를 넘겨줍니다.

일단, Socket Descriptor를 받을 수 있으므로, winsock 객체에 이것을
Assign하면(지금현재로는 new로 할당시에 초기화하면 될 것 같습니다)
그 다음에는 VB에서의 많은 통신 method들을 주어진 Socket Descriptor
를 통해서 사용할 수 있을 것 같습니다.

---------------------------------------------------------------
수정 이부분이 불가능하더군요. sockethandle이 읽기 전용이라서요.
그래서 일단 받은 Socket Handler를 전역으로 놓아서 공유하고 이것
을 인자로 주는 socket send recv함수를 dll로 win32에서 만들고 이
것을 VB에서 불러주면 되겠네요. ^^;
---------------------------------------------------------------

아직 테스트를 않해본 상태라서 여기에 대해 구체적으로 이야기할수는
없지만 이 방식이면 socket을 VB로 이용할수 있을 것 같군요.

일단은 VB에 Socket Descriptor를 넘겨주는 방법은 알아냈습니다.

댓글 달기

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