Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[15936] 쓰레드(Thread)를 이용해서 프로그램을 수정하고 싶은데 한번만 봐주세요.
황장군와우 [] 1581 읽음    2017-10-23 17:08
현재 멀티캐스트로 데이터를 받아서 처리하는것을 돌리는 중입니다.
그런데 지금 현재는 하나의 프로세서로 돌리고 있는데 물론 각 라인마다 각각의 다른데이터가 날라옵니다.
처리하는 부분은 같은데 함수로 만들어 놨는데 각각이 공유해서 쓰지는 않지만 처리하는거는 동일합니다.

지금 소스가
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms
  ;

const
  WM_SOCK1 = WM_USER + 1;
  UDPPORT1 = 18500;
  MY_GROUP1 = '255.255.255.0';

  WM_SOCK2 = WM_USER + 2;
  UDPPORT2 = 18501;
  MY_GROUP2 = '255.255.255.1';

type
  ip_mreq = record
    imr_multiaddr: in_addr;  (* IP multicast address of group *)
    imr_interface: in_addr;  (* local IP address of interface *)
  end;
  TIpMReq = ip_mreq;
  PIpMReq = ^ip_mreq;

type
  TfrmMain = class(TForm)
    Button1: TButton;
   private
    procedure ReadData1(var Message: TMessage); message WM_SOCK1;
    procedure ReadData2(var Message: TMessage); message WM_SOCK2;
   public
  end;

== 이렇게 한다음 멀티캐스트 등록한다음
procedure TfrmMain.ReadData1(var Message: TMessage);
var
  buffer: Array [1..4096] of char;
  len: integer;
  flen: integer;
  Event: word;
  value: string;
begin
  flen:=sizeof(FSockAddrIn1);
  Event := WSAGetSelectEvent(Message.LParam);
  if Event = FD_READ then
  begin
      len := recvfrom(s1, buffer, sizeof(buffer), 0, FSockAddrIn1, flen);
      value := copy(buffer, 1, len);

      aaa(value);

  end;
end;

== 위와같이 사용합니다.

위 프로그램처럼 할때 데이터를 받아서 처리하는 aaa를 쓰레드로 만들어야 하나요 아님 멀티캐스트 등록하는것을 쓰레드로 만들어야 하나요?

다들 쓰레드를 사용해서 해야 각각이 데이터를 받아서 처리 한다던데.
어느부분을 쓰레드로 만들어야 할지를 모르겠습니다.

조언 부탁합니다.

+ -

관련 글 리스트
15936 쓰레드(Thread)를 이용해서 프로그램을 수정하고 싶은데 한번만 봐주세요. 황장군와우 1581 2017/10/23
15938     Re:쓰레드(Thread)를 이용해서 프로그램을 수정하고 싶은데 한번만 봐주세요. gomsun2 1776 2017/10/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.