いわゆるソケット API は、本質的に非常に低レベルの C 言語 API です。UDP ソケットを作成すると、接続情報がカーネルに保存されます。「UDPデータグラムを構築する」ことは決してなく、UDPソケットファイル記述子にデータを書き込んでおり、ネットワーク経由で送信される物理データパケットはカーネル内で構築されます。
そうです、宛先アドレスといくつかのデータを含むアプリケーションで渡すことができるデータ構造が必要な場合は、この構造はそれ自体ではどこにも存在しないため、自分で作成する必要があります。
そんなに大変な作業ではありません。2 つ (または 3 つ) のデータ要素のみ。Struct
より複雑な機能が必要な場合を除き、通常のクラスを構築するだけであれば、単純なものを使用してジョブを実行できます。
編集
私はあなたの質問を誤解したようです。リソースについては、以下の私のコメントを参照してください。たとえば、ここにRacket ライブラリの docsからのコードがいくつかあります。これはおそらく探していたものに近いものです。
# tack on UDP
n.l4 = UDP.new
# randomize source port
n.l4.src_port = 1024 + rand(65535-1024)
# take destination port from the commandline
n.l4.dst_port = ARGV[2].to_i
# build a random amount of garbage for the payload
n.l4.payload = Misc.randstring(ARGV[3].to_i)
# fix 'er up (checksum, length) prior to sending
n.l4.fix!(n.l3.src_ip, n.l3.dst_ip)