新規
・
ツリー
スレッド
未解決
緊急
・
優先
・
検索
・
なでしこTOP
「なでしこv1」開発掲示板
なでしこv1のバグや要望を書き込む掲示板
✏️ 書き込み(
#2039
)を編集する
名前
タイトル
本文
結局、こんな感じに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","{ホスト}:{ポート}:{自ホスト}:{自ポート}") ------
優先度
低
中
高
緊急
状態
未処理
詳細求む!
調査中
議論中
修正中
確認待ち
再修正依頼
解決
---
重複
---
アイデア
感想
告知
感謝
編集キー
編集時に使うキーを入力(省略可能)
添付ファイル
画像ファイル(最大300KB)を添付可能
Website