[
新規
] - [
ツリー
] - [
スレッド
] [
未解決
] [
緊急
] - [
優先
] - [
検索
] - [
なでしこ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)を添付可能