「なでしこv1」開発掲示板

なでしこv1のバグや要望を書き込む掲示板

(#2039) 自側の設定の追加 - うぇいく (2012-08-27 21:58) /低 未処理
結局、こんな感じにuPnPを試しました。uPNPの1900はXP以降だとOSのサービスでも起動されるものがあるため、自側のポートが同じだと都合が悪いようです。
(別途、OSのサービスを停止すれば、送信側が1900でも動きます)
------dll_net_function.pas
      //---
      try
        p.PortNo := StrToIntDef(getToken_s(s, ':'), 80);
      except on e: Exception do
        raise Exception.Create('ポート番号が解決できません。');
      end;
      if s <> '' then
      begin
        try
          p.OwnHost := getToken_s(s, ':');
        except on e: Exception do
          raise Exception.Create('自ホスト名が解決できません。');
        end;
        try
          p.OwnPortNo := StrToIntDef(s, p.PortNo);
        except on e: Exception do
          p.OwnPortNo := p.PortNo;
        end;
      end else begin
        p.OwnHost := '';
        p.OwnPortNo := p.PortNo;
      end;
------
------UdpUnit.pas
    // 外部との対話用の接続管理
    FHost           : string;         // 接続先
    FPortNo         : Integer;
    FOwnHost        : string;         // 自側Host
    FOwnPortNo      : Integer;
    // イベント用
------
------UdpUnit.pas
    property Host: string read FHost write FHost;
    property PortNo: Integer read FPortNo write FPortNo;
    property OwnHost: string read FOwnHost write FOwnHost;
    property OwnPortNo: Integer read FOwnPortNo write FOwnPortNo;
  end;
------
------UdpUnit.pas
  // ポートの設定
  FSockAddr.sin_port         := htons(FOwnPortNo);
  FSockAddr.sin_family       := AF_INET;
  if FOwnHost = '' then
  begin
    FSockAddr.sin_addr.S_addr  := INADDR_ANY;
  end else begin
    FsockAddr.sin_addr.S_addr  := inet_addr(PAnsiChar(FOwnHost));
  end;
------
------nakonet.nako
 ・ポート{=60001}
 ・ホスト{=『225.0.0.0』}
 ・自ポート{=『』}  # 接続の時点で、1以上:その値 空:ポート同じ 0:自動
 ・自ホスト{=『』}  # 接続の時点で、空:ADDR_ANY IP:ネットワークIFのIP
------
------nakonet.nako
 ・接続~
   UDP_COMMAND(UDPID,"connect","{ホスト}:{ポート}:{自ホスト}:{自ポート}")
------
nakonetのUDP受信がエラーとなる / うぇいく (2012-08-28 16:21) (#2036)/ 低 未処理
  自側の設定の追加 / うぇいく (2012-08-27 21:58) (#2039)/ 低 未処理
  蛇足 / うぇいく (2012-08-28 22:09) (#2040)/ 低 未処理

(#2039)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能