Garbage Collection

塵も積もれば山

目次

Blog 利用状況

ニュース

C++とかC#とか数学ネタを投下していく予定です。

[その他のページ]
日々の四方山話を綴った日記出水の日記帳

書庫

日記カテゴリ

[C++]楽々UDPサーバ

最近boostを真面目に使い始めたので、その辺を書いてみます。
今回はudpサーバの作り方です。

TCPじゃなくてUDP?って感じですが、UDPの方がシンプルなのでまずはこちらを理解しましょう。

#include <ctime>
#include <iostream>
#include <string>
#include <boost/array.hpp>
#include <boost/bind.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/enable_shared_from_this.hpp>
#include <boost/asio.hpp>

using boost::asio::ip::udp;

class udp_server
{
  udp::socket socket_;
  udp::endpoint remote_endpoint_;
  boost::array<char, 512> recv_buffer_;

public:
  udp_server(boost::asio::io_service& io_service, int port)
    : socket_(io_service, udp::endpoint(udp::v4(), port)){
    start_receive();
  }

private:
  void start_receive(){
    socket_.async_receive_from(
      boost::asio::buffer(recv_buffer_), remote_endpoint_,
      boost::bind(&udp_server::handle_receive, this,
        boost::asio::placeholders::error, _2));
  }

  void handle_receive(const boost::system::error_code& error, size_t len){
    if (!error || error == boost::asio::error::message_size){
      std::string message(recv_buffer_.data(), len);

      std::cout << remote_endpoint_.address() << ":" << remote_endpoint_.port() << std::endl ;
      std::cout << message << std::endl;

      socket_.send_to(boost::asio::buffer(recv_buffer_, len), remote_endpoint_);

      start_receive();
    }
  }
};

int main(){
  try{
    boost::asio::io_service io_service;
    udp_server userver(io_service, 10000);
    io_service.run();
  }
  catch (std::exception& e)  {
    std::cerr << e.what() << std::endl;
  }

  return 0;
}

udp_serverクラスを見てみましょう。まずは変数部分。

  udp::socket socket_;
  udp::endpoint remote_endpoint_;
  boost::array<char, 512> recv_buffer_;

変数は3つ、ソケット、エンドポイント、それと受信用バッファですね。
エンドポイントってのは、IPやらポートやらを格納するクラスです。
今回はパケットの送信元を格納するために使います。

バッファにboost::arrayを使っていますが、従来のchar [512]の書式だと、
どれだけの長さのバッファが確保されているのか、ってのを取得する方法がないんですね。
(sizeofを使った取得方法が一応ありますけど…)
foreachやイテレータにも対応しているので、使えるときにはこちらを使いましょう。

  udp_server(boost::asio::io_service& io_service, int port)
    : socket_(io_service, udp::endpoint(udp::v4(), port)){
    start_receive();
  }

コンストラクタでは、ソケットにio_serviceとUDPサーバに必要な物を渡します。
そして、start_receiveって関数を呼んでいます。

  void start_receive(){
    socket_.async_receive_from(
      boost::asio::buffer(recv_buffer_), remote_endpoint_,
      boost::bind(&udp_server::handle_receive, this,
        boost::asio::placeholders::error, _2));
  }

start_recieveってのはパケットを受信した時のイベント登録をする関数です。
async_で始まるのは非同期イベントの登録を意味します。
つまり、UDPのパケットを受け取ったら、handle_receive関数を呼び出すイベントを登録しています。

boost::bindのおかげでメンバー関数をコールバックできる当たりが素敵。

  void handle_receive(const boost::system::error_code& error, size_t len){
    if (!error || error == boost::asio::error::message_size){
      std::string message(recv_buffer_.data(), len);

      std::cout << remote_endpoint_.address() << ":" << remote_endpoint_.port() << std::endl ;
      std::cout << message << std::endl;

      socket_.send_to(boost::asio::buffer(recv_buffer_, len), remote_endpoint_);

      start_receive();
    }
  }

その呼び出されるhandle_receiveの中身。

handle_receive関数はエラーでも呼び出されるので、エラーでない時だけ通常処理をします。
受信したデータをIP、ポートと一緒に画面に表示し、送信元に投げ返します。
その後、再度イベントを登録します。

一度イベントが呼び出された時点でイベントの登録が無効になるので、
もう一度登録しなおさないと駄目なんですね。

ちなみに、message_sizeってのはバッファがあふれた時のエラーです。
このエラーは無視します。

int main(){
  boost::asio::io_service io_service;
  udp_server userver(io_service, 10000);
  io_service.run();
  return 0;
}

最後はmain関数。例外部分は省きました。
io_serviceってのがイベントの面倒をみるクラスです。
今回はudpserverクラスしか登録していませんが、同時にtcpserverクラスも登録して
両方の面倒を見てもらう、という使い方もできます。

イベントをゴニョゴニョ!っと登録したらio_service.run()で待ち受け開始!
後は延々とUDPサーバが動き続けます。

ということで、わずか50行程度でUDPサーバができちゃうわけですよ、すごい!
しかも、WindowsだのLinuxだのというOSを意識しないってのもいいですね。

投稿日時 : 2010年10月23日 9:13

Feedback

# [C++]楽々TCPサーバ 2010/10/26 9:34 Garbage Collection

[C++]楽々TCPサーバ

# 
Twitter Trackbacks for

boost::asio???UDP / [C++]??????UDP?????????
[wankuma.com]
on Topsy.com
2010/12/28 20:07 Pingback/TrackBack


Twitter Trackbacks for

boost::asio???UDP / [C++]??????UDP?????????
[wankuma.com]
on Topsy.com

# WLHZjIWjdnFvl 2011/12/12 18:46 http://www.birthcontrolremedy.com/birth-control/cl

Can be also this issue because the truth can be achieved only in a dispute :D

# crCZOBMmMTn 2011/12/16 0:23 http://www.circalighting.com/

I decided to help and sent a post to the social bookmarks. I hope to raise it in popularity!!...

# Great post but I was wondering if you could write a litte more on this topic? I'd be very thankful if you could elaborate a little bit more. Cheers! 2019/05/06 11:43 Great post but I was wondering if you could write

Great post but I was wondering if you could write a litte more on this topic?
I'd be very thankful if you could elaborate a little bit more.
Cheers!

# Woah! I'm really enjoying the template/theme of this blog. It's simple, yet effective. A lot of times it's very difficult to get that "perfect balance" between superb usability and appearance. I must say that you've done a fantastic job with th 2019/05/12 3:34 Woah! I'm really enjoying the template/theme of th

Woah! I'm really enjoying the template/theme of this blog.
It's simple, yet effective. A lot of times it's very difficult to get that "perfect balance" between superb usability and appearance.
I must say that you've done a fantastic job with this. In addition, the blog loads very quick for me on Firefox.
Outstanding Blog!

# If you would like to increase your know-how simply keep visiting this web page and be updated with the newest gossip posted here. 2019/05/14 7:25 If you would like to increase your know-how simply

If you would like to increase your know-how simply keep visiting this web page and be updated with
the newest gossip posted here.

# I am really grateful to the holder of this web page who has shared this fantastic post at at this time. 2019/06/02 23:10 I am really grateful to the holder of this web pag

I am really grateful to the holder of this web page who has shared this fantastic post at at this time.

# In fact no matter if someone doesn't understand after that its up to other visitors that they will assist, so here it takes place. 2019/06/06 13:58 In fact no matter if someone doesn't understand af

In fact no matter if someone doesn't understand after that its up to other visitors that they will assist, so here it takes place.

# Hi! I know this is kinda off topic however , I'd figured I'd ask. Would you be interested in exchanging links or maybe guest writing a blog post or vice-versa? My site goes over a lot of the same subjects as yours and I think we could greatly benefit f 2019/09/03 17:14 Hi! I know this is kinda off topic however , I'd f

Hi! I know this is kinda off topic however , I'd figured I'd ask.

Would you be interested in exchanging links or maybe guest writing a blog post or vice-versa?
My site goes over a lot of the same subjects as yours and
I think we could greatly benefit from each other. If you're
interested feel free to shoot me an email. I look forward to hearing from you!
Terrific blog by the way!

# Hi! I know this is kinda off topic however , I'd figured I'd ask. Would you be interested in exchanging links or maybe guest writing a blog post or vice-versa? My site goes over a lot of the same subjects as yours and I think we could greatly benefit f 2019/09/03 17:15 Hi! I know this is kinda off topic however , I'd f

Hi! I know this is kinda off topic however , I'd figured I'd ask.

Would you be interested in exchanging links or maybe guest writing a blog post or vice-versa?
My site goes over a lot of the same subjects as yours and
I think we could greatly benefit from each other. If you're
interested feel free to shoot me an email. I look forward to hearing from you!
Terrific blog by the way!

# Hi! I know this is kinda off topic however , I'd figured I'd ask. Would you be interested in exchanging links or maybe guest writing a blog post or vice-versa? My site goes over a lot of the same subjects as yours and I think we could greatly benefit f 2019/09/03 17:16 Hi! I know this is kinda off topic however , I'd f

Hi! I know this is kinda off topic however , I'd figured I'd ask.

Would you be interested in exchanging links or maybe guest writing a blog post or vice-versa?
My site goes over a lot of the same subjects as yours and
I think we could greatly benefit from each other. If you're
interested feel free to shoot me an email. I look forward to hearing from you!
Terrific blog by the way!

# Hi! I know this is kinda off topic however , I'd figured I'd ask. Would you be interested in exchanging links or maybe guest writing a blog post or vice-versa? My site goes over a lot of the same subjects as yours and I think we could greatly benefit f 2019/09/03 17:17 Hi! I know this is kinda off topic however , I'd f

Hi! I know this is kinda off topic however , I'd figured I'd ask.

Would you be interested in exchanging links or maybe guest writing a blog post or vice-versa?
My site goes over a lot of the same subjects as yours and
I think we could greatly benefit from each other. If you're
interested feel free to shoot me an email. I look forward to hearing from you!
Terrific blog by the way!

# Link exchange is nothing else except it is only placing the other person's website link on your page at suitable place and other person will also do similar for you. 2019/09/07 23:34 Link exchange is nothing else except it is only p

Link exchange is nothing else except it is only placing the other person's website link on your page at suitable place and other person will also
do similar for you.

# hcEMpAcewQjWBvA 2021/07/03 1:51 https://vimeo.com/568178920

no easy feat. He also hit Nicks for a four-yard TD late in the game.

# eOhaHgzsmXkzyXOGoc 2021/07/03 3:21 https://amzn.to/365xyVY

I'а?ll right away grasp your rss feed as I can not to find your email subscription link or newsletter service. Do you have any? Kindly permit me recognize so that I may subscribe. Thanks.

# An intriguing discussion is definitely worth comment. I believe that you need to publish more about this subject matter, it may not be a taboo matter but usually people do not discuss such topics. To the next! Many thanks!! 2021/07/12 14:56 An intriguing discussion is definitely worth comme

An intriguing discussion is definitely worth comment.
I believe that you need to publish more about this subject matter, it may not be a taboo matter
but usually people do not discuss such topics. To the next!
Many thanks!!

# re: [C++]??UDP??? 2021/08/08 13:05 when was hydroxychloroquine first used

chloroquine tab https://chloroquineorigin.com/# hydroxychloroquinine

# I am sure this post has touched all the internet visitors, its really really good paragraph on building up new webpage. 2021/08/30 12:54 I am sure this post has touched all the internet v

I am sure this post has touched all the internet visitors, its
really really good paragraph on building up new webpage.

# I am sure this post has touched all the internet visitors, its really really good paragraph on building up new webpage. 2021/08/30 12:55 I am sure this post has touched all the internet v

I am sure this post has touched all the internet visitors, its
really really good paragraph on building up new webpage.

# I am sure this post has touched all the internet visitors, its really really good paragraph on building up new webpage. 2021/08/30 12:56 I am sure this post has touched all the internet v

I am sure this post has touched all the internet visitors, its
really really good paragraph on building up new webpage.

# I am sure this post has touched all the internet visitors, its really really good paragraph on building up new webpage. 2021/08/30 12:57 I am sure this post has touched all the internet v

I am sure this post has touched all the internet visitors, its
really really good paragraph on building up new webpage.

# Today, I went to the beach with my kids. I found a sea shell and gave it to my 4 year old daughter and said "You can hear the ocean if you put this to your ear." She put the shell to her ear and screamed. There was a hermit crab inside and it 2021/09/02 18:38 Today, I went to the beach with my kids. I found a

Today, I went to the beach with my kids. I found a sea shell
and gave it to my 4 year old daughter and said "You can hear the ocean if you put this to your ear." She put the shell to her ear and screamed.
There was a hermit crab inside and it pinched her ear.
She never wants to go back! LoL I know this is entirely off topic but I had to tell someone!

# Today, I went to the beach with my kids. I found a sea shell and gave it to my 4 year old daughter and said "You can hear the ocean if you put this to your ear." She put the shell to her ear and screamed. There was a hermit crab inside and it 2021/09/02 18:39 Today, I went to the beach with my kids. I found a

Today, I went to the beach with my kids. I found a sea shell
and gave it to my 4 year old daughter and said "You can hear the ocean if you put this to your ear." She put the shell to her ear and screamed.
There was a hermit crab inside and it pinched her ear.
She never wants to go back! LoL I know this is entirely off topic but I had to tell someone!

# Today, I went to the beach with my kids. I found a sea shell and gave it to my 4 year old daughter and said "You can hear the ocean if you put this to your ear." She put the shell to her ear and screamed. There was a hermit crab inside and it 2021/09/02 18:40 Today, I went to the beach with my kids. I found a

Today, I went to the beach with my kids. I found a sea shell
and gave it to my 4 year old daughter and said "You can hear the ocean if you put this to your ear." She put the shell to her ear and screamed.
There was a hermit crab inside and it pinched her ear.
She never wants to go back! LoL I know this is entirely off topic but I had to tell someone!

# Everyone loves what you guys tend to be up too. This type of clever work and coverage! Keep up the awesome works guys I've included you guys to our blogroll. 2021/09/05 7:19 Everyone loves what you guys tend to be up too. Th

Everyone loves what you guys tend to be up too. This type
of clever work and coverage! Keep up the awesome works guys
I've included you guys to our blogroll.

# Everyone loves what you guys tend to be up too. This type of clever work and coverage! Keep up the awesome works guys I've included you guys to our blogroll. 2021/09/05 7:20 Everyone loves what you guys tend to be up too. Th

Everyone loves what you guys tend to be up too. This type
of clever work and coverage! Keep up the awesome works guys
I've included you guys to our blogroll.

# Everyone loves what you guys tend to be up too. This type of clever work and coverage! Keep up the awesome works guys I've included you guys to our blogroll. 2021/09/05 7:21 Everyone loves what you guys tend to be up too. Th

Everyone loves what you guys tend to be up too. This type
of clever work and coverage! Keep up the awesome works guys
I've included you guys to our blogroll.

# Everyone loves what you guys tend to be up too. This type of clever work and coverage! Keep up the awesome works guys I've included you guys to our blogroll. 2021/09/05 7:22 Everyone loves what you guys tend to be up too. Th

Everyone loves what you guys tend to be up too. This type
of clever work and coverage! Keep up the awesome works guys
I've included you guys to our blogroll.

# I every time spent my half an hour to read this website's articles every day along with a mug of coffee. 2021/09/06 18:10 I every time spent my half an hour to read this we

I every time spent my half an hour to read this website's
articles every day along with a mug of coffee.

# ivermectin price 2021/09/28 18:38 MarvinLic

buy ivermectin for humans uk http://stromectolfive.com/# ivermectin brand

# Good way of explaining, and good paragraph to get information regarding my presentation subject matter, which i am going to deliver in university. part time jobs hired in 30 minutes https://parttimejobshiredin30minutes.wildapricot.org/ 2021/10/22 18:33 Good way of explaining, and good paragraph to get

Good way of explaining, and good paragraph to get information regarding my presentation subject matter, which i am going to deliver in university.
part time jobs hired in 30 minutes https://parttimejobshiredin30minutes.wildapricot.org/

# This site really has all the info I wanted about this subject and didn't know who to ask. 2021/10/26 21:38 This site really has all the info I wanted about t

This site really has all the info I wanted about this subject and didn't know who to
ask.

# This site really has all the info I wanted about this subject and didn't know who to ask. 2021/10/26 21:40 This site really has all the info I wanted about t

This site really has all the info I wanted about this subject and didn't know who to
ask.

# This site really has all the info I wanted about this subject and didn't know who to ask. 2021/10/26 21:41 This site really has all the info I wanted about t

This site really has all the info I wanted about this subject and didn't know who to
ask.

# This site really has all the info I wanted about this subject and didn't know who to ask. 2021/10/26 21:42 This site really has all the info I wanted about t

This site really has all the info I wanted about this subject and didn't know who to
ask.

# ivermectin where to buy for humans 2021/11/03 14:31 DelbertBup

ivermectin generic http://stromectolivermectin19.com/# ivermectin 12 mg
ivermectin 12

# Amazing! This blog looks just like my old one! It's on a completely different subject but it has pretty much the same layout and design. Superb choice of colors! 2021/11/12 11:36 Amazing! This blog looks just like my old one! It'

Amazing! This blog looks just like my old one!
It's on a completely different subject but it has pretty much the
same layout and design. Superb choice of colors!

# generic ed pills from canada 2021/12/04 4:43 JamesDat

https://genericpillson.com/# cheap generic ed pills cytotec

# sildenafil 20 mg tablet 2021/12/09 14:11 JamesDat

http://iverstrom24.com/# stromectol 3mg tablets

# buy bimatoprost 2021/12/12 2:19 Travislyday

http://stromectols.com/ where to buy stromectol online

# careprost bimatoprost for sale 2021/12/12 21:44 Travislyday

https://plaquenils.com/ plaquenil best price

# bimatoprost buy 2021/12/13 17:24 Travislyday

http://baricitinibrx.online/ baricitinib price

# bimatoprost buy online usa 2021/12/16 1:59 Travislyday

https://plaquenils.com/ hydroxychloroquine sulfate cost

# ivermectin rx 2021/12/16 22:46 Eliastib

wjmimu https://stromectolr.com stromectol for humans

# ivermectin pills 2021/12/18 20:03 Eliastib

myjmlz https://stromectolr.com ivermectin 1% cream generic

# At this time I am going to do my breakfast, later than having my breakfast coming over again to read more news. 2021/12/30 17:55 At this time I am going to do my breakfast, later

At this time I am going to do my breakfast, later than having my breakfast coming over again to read more news.

# clomid generic name http://clomidfast.site/ 2022/04/12 12:52 Clomids

clomid generic name http://clomidfast.site/

# jsrkdcPNpHDdsYKXX 2022/04/19 11:27 johnansaz

http://imrdsoacha.gov.co/silvitra-120mg-qrms

# pkihkulhoywv 2022/05/08 7:56 pmncbg

hydrochloquine https://keys-chloroquineclinique.com/

# clomid online cheap https://clomidonline.icu/ 2022/07/08 13:33 Clomidj

clomid online cheap https://clomidonline.icu/

# Maxolon https://allpharm.store/ 2022/07/21 22:01 AllPharm

Maxolon https://allpharm.store/

# ed pills that work https://ed-pills.xyz/
best male ed pills 2022/09/16 7:30 EdPills

ed pills that work https://ed-pills.xyz/
best male ed pills

# best ed treatment https://ed-pills.xyz/
cheapest ed pills 2022/09/16 19:35 EdPills

best ed treatment https://ed-pills.xyz/
cheapest ed pills

# over the counter erectile dysfunction pills https://ed-pills.xyz/
top erection pills 2022/09/17 19:51 EdPills

over the counter erectile dysfunction pills https://ed-pills.xyz/
top erection pills

# bactrim without a prescription https://antibiotic.best/ 2022/10/08 3:45 Antibiotic

bactrim without a prescription https://antibiotic.best/

# price of doxycycline https://buydoxycycline.icu/ 2022/10/08 11:52 Doxycycline

price of doxycycline https://buydoxycycline.icu/

# buy prednisone without prescription https://prednisonepills.site/
generic prednisone for sale 2022/11/30 0:51 Prednisone

buy prednisone without prescription https://prednisonepills.site/
generic prednisone for sale

# new treatments for ed https://cheapestedpills.com/
top ed pills 2022/12/10 16:26 CheapPills

new treatments for ed https://cheapestedpills.com/
top ed pills

# canada pharmacies online https://noprescriptioncanada.com/
mail order drug store 2022/12/16 16:38 NoPrescript

canada pharmacies online https://noprescriptioncanada.com/
mail order drug store

# ed pills comparison https://edpills.science/
best pills for ed 2023/01/07 8:41 Edpills

ed pills comparison https://edpills.science/
best pills for ed

# buy doxycycline online uk - https://doxycyclinesale.pro/# 2023/04/21 17:34 Doxycycline

buy doxycycline online uk - https://doxycyclinesale.pro/#

# best ed pills over the counter https://overthecounter.pro/# 2023/05/08 22:46 OtcJikoliuj

best ed pills over the counter https://overthecounter.pro/#

# prednisone 20mg tab price https://prednisonepills.pro/# - prednisone nz 2023/06/04 21:32 Prednisone

prednisone 20mg tab price https://prednisonepills.pro/# - prednisone nz

# buy paxlovid online https://paxlovid.store/
paxlovid 2023/07/13 13:23 Paxlovid

buy paxlovid online https://paxlovid.store/
paxlovid

# paxlovid for sale https://paxlovid.life/# paxlovid generic 2023/07/25 20:43 Paxlovid

paxlovid for sale https://paxlovid.life/# paxlovid generic

# buy cytotec over the counter https://cytotec.ink/# - buy cytotec pills 2023/07/26 14:40 PillsFree

buy cytotec over the counter https://cytotec.ink/# - buy cytotec pills

# best drug for ed https://edpills.ink/# - how to cure ed 2023/07/27 0:51 EdPills

best drug for ed https://edpills.ink/# - how to cure ed

# versandapotheke deutschland 2023/09/26 14:00 Williamreomo

http://onlineapotheke.tech/# online apotheke preisvergleich
online apotheke deutschland

# gГјnstige online apotheke 2023/09/27 0:50 Williamreomo

https://onlineapotheke.tech/# online apotheke gГ?nstig
п»?online apotheke

# online apotheke gГјnstig 2023/09/27 1:53 Williamreomo

https://onlineapotheke.tech/# online apotheke versandkostenfrei
online apotheke gГ?nstig

# п»їonline apotheke 2023/09/27 3:16 Williamreomo

https://onlineapotheke.tech/# online apotheke preisvergleich
versandapotheke

# п»їonline apotheke 2023/09/27 5:02 Williamreomo

https://onlineapotheke.tech/# online apotheke deutschland
online apotheke preisvergleich

# internet apotheke 2023/09/27 6:41 Williamreomo

https://onlineapotheke.tech/# online apotheke gГ?nstig
versandapotheke

# п»їonline apotheke 2023/09/27 10:51 Williamreomo

https://onlineapotheke.tech/# п»?online apotheke
versandapotheke

# п»їonline apotheke 2023/09/27 13:03 Williamreomo

http://onlineapotheke.tech/# online apotheke gГ?nstig
internet apotheke

# the best ed pill https://edpillsotc.store/# - top rated ed pills 2023/10/08 1:11 EdPills

the best ed pill https://edpillsotc.store/# - top rated ed pills

# canada rx prices 2023/10/15 20:47 Kiethamert

http://gabapentin.world/# gabapentin 300mg

# canadian pharacy 2023/10/16 17:13 Dannyhealm

The widest range of international brands under one roof. http://mexicanpharmonline.shop/# mexico drug stores pharmacies

# your canada drug store 2023/10/16 19:14 Dannyhealm

A place where customer health is the top priority. http://mexicanpharmonline.shop/# mexican rx online

# top rated canadian pharmacies 2023/10/16 19:40 Dannyhealm

I'm always impressed with their efficient system. https://mexicanpharmonline.shop/# mexico drug stores pharmacies

# buying prescription medications online 2023/10/16 22:30 Dannyhealm

Always professional, whether dealing domestically or internationally. https://mexicanpharmonline.shop/# pharmacies in mexico that ship to usa

# canadian pharamacy 2023/10/16 22:49 Dannyhealm

The staff always goes the extra mile for their customers. http://mexicanpharmonline.com/# mexico drug stores pharmacies

# best online indian pharmacies 2023/10/17 11:58 Dannyhealm

Stellar service in every department. https://mexicanpharmonline.shop/# mexican mail order pharmacies

# online doctor prescription canada 2023/10/17 14:16 Dannyhealm

They make international medication sourcing effortless. http://mexicanpharmonline.shop/# pharmacies in mexico that ship to usa

# canadian farmacy 2023/10/17 16:31 Dannyhealm

Consistent excellence across continents. http://mexicanpharmonline.com/# mexican border pharmacies shipping to usa

# canada drug stores 2023/10/17 17:05 Dannyhealm

Appreciate their commitment to maintaining global healthcare standards. http://mexicanpharmonline.shop/# mexican mail order pharmacies

# certified canadian pharmacies 2023/10/17 21:01 Dannyhealm

The staff is well-trained and always courteous. http://mexicanpharmonline.shop/# mexican mail order pharmacies

# canada prescription online 2023/10/17 21:35 Dannyhealm

Their patient care is unparalleled. http://mexicanpharmonline.com/# mexican border pharmacies shipping to usa

# rx meds online 2023/10/18 2:09 Dannyhealm

A beacon of excellence in pharmaceutical care. http://mexicanpharmonline.shop/# mexico drug stores pharmacies

# how to get a prescription in canada 2023/10/18 23:35 Dannyhealm

Their team understands the nuances of global healthcare. http://mexicanpharmonline.com/# mexico drug stores pharmacies

# valtrex 500 mg tablet https://valtrex.auction/ valtrex daily use 2023/10/24 22:09 Valtrex

valtrex 500 mg tablet https://valtrex.auction/ valtrex daily use

# ï»¿paxlovid https://paxlovid.bid/ Paxlovid buy online 2023/10/25 22:57 Paxlovid

paxlovid https://paxlovid.bid/ Paxlovid buy online

# ï»¿farmacia online migliore https://farmaciait.pro/ comprare farmaci online con ricetta 2023/12/04 10:13 Farmacia

farmacia online migliore https://farmaciait.pro/ comprare farmaci online con ricetta

# buy cytotec over the counter https://cytotec.club/ buy cytotec 2024/04/28 2:02 Cytotec

buy cytotec over the counter https://cytotec.club/ buy cytotec

タイトル
名前
Url
コメント