スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

UDPによる通信プログラム

UDPによる通信プログラムのサンプルが無かったので自前で作成。
環境:Delphi2007 + Indy10.5.8.0
日本語のメッセージにも対応しています。

//===========================================================
//サーバー側
//===========================================================
procedure TForm1.FormCreate(Sender: TObject);
begin
  IdUDPServer1.DefaultPort := 12345;
  IdUDPServer1.BroadcastEnabled := True;
  IdUDPServer1.OnUDPRead := IdUDPServer1UDPRead; // 受信時のイベント
  IdUDPServer1.Active := True;
end;


procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
const AData: TIdBytes; ABinding: TIdSocketHandle);
var
  a: string;
  s: string;

begin
  // Indyのデフォルト文字コードを設定
  IdGlobal.GIdDefaultAnsiEncoding := encUTF8;

  // エンコードを指定してバイト配列を文字列に変換する。
  s := BytesToString(AData, enUTF8);
  a := Utf8ToAnsi(s); // UnicodeをAnsiに変換する。

  Memo1.Lines.Add(ABinding.PeerIP + ' ' + a);
  // ABinding.PeerIP には送信元のIPが格納されています。
  // ABinding.PeerPort には送信元のポートが格納されています。
end;


//===========================================================
//クライアント側
//===========================================================
ボタンなどでのクリックイベントで実装してください。
// コンピュータ名からIPアドレスを取得する。
sServerIP := GetIpAddress(sCPNM);

// Indyのデフォルト文字コードを設定
IdGlobal.GIdDefaultAnsiEncoding := encUTF8;

// サーバーがあるか確認する
myUDPClient := TIdUDPClient.Create(nil);
myUDPClient.Active := True;
myUDPClient.BroadcastEnabled := True;
myUDPClient.ReceiveTimeout := 500;
myUDPClient.Host := sServerIP;
myUDPClient.Port := 12345;
myUDPClient.Send('Server'#13#10, enUTF8);

myUDPClient.Active := False;
myUDPClient.Disconnect;
myUDPClient.Free;



function GetIpAddress(HostName : String) : String;
var
  PH : PHostEnt;
  InAddr: TInAddr;
  WSADATA : TWSADATA;
begin
  Result := '';
  if HostName = '' then exit;
  WSAStartup(MakeWord(1,1), WSADATA);

  PH := gethostbyname(PChar(HostName));

  if PH = nil then Exit;
  InAddr := PInAddr(ph^.h_addr_list^)^;
  Result := inet_ntoa(InAddr);
  WSACleanup;
end;

ランキングに参加しています。
クリックのご協力をお願い致します。
いつもありがとうございます。

にほんブログ村 通販ブログへ
にほんブログ村
ブログランキング・にほんブログ村へ
にほんブログ村
にほんブログ村 IT技術ブログ ソフトウェアへ
にほんブログ村
にほんブログ村 ゲームブログへ
にほんブログ村
にほんブログ村 IT技術ブログへ
にほんブログ村

スポンサーサイト
スポンサードリンク
最新記事
カテゴリ
カレンダー
11 | 2014/12 | 01
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
最新トラックバック
ブロとも申請フォーム

この人とブロともになる

月別アーカイブ
激安特価情報
Amazonタイムセール
楽天市場タイムセール
Yahoo出店記念セール
NTT-X Store 激安特価!
激安家電のGENO PLUS
コストコ・イケアの通販
つけたまま眠れるファンデ
家電品を安値で買うならこちら!
ケーズデンキ
ベルメゾンアウトレット
激安ブランドコスメ 週末セール
モバコレ SALE
au Brand Garden
アウトレットモール BRANDELI
ブックオフオンラインのオトナ買い
ビッグカメラ◆週末特別セール
ソフマップ 中古・アウトレット
【宿代全額ポイントバック】夏休み早期予約キャンペーン
ネットプライス 送料294円
イオンモールオンライン
EDIONネットショップ
最新コメント
天気予報

-天気予報コム- -FC2-
カウンター
検索フォーム
リンクに表示されるテキスト
ランキング参加中
クリックしていただけると、 こまつもとは大変嬉しいです。



人気ブログランキングへ

ランキングに参加しています。 クリックのご協力をお願い致します。 いつもありがとうございます。 にほんブログ村 通販ブログへ
ブログランキング・にほんブログ村へ
にほんブログ村 IT技術ブログ ソフトウェアへ
にほんブログ村 ゲームブログへ
にほんブログ村 IT技術ブログへ



人気ブログをblogramで分析

趣味・個人

ランキング

リンクリックブログランキング

私を登録 by BlogPeople



RSSリンクの表示
リンク
QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。