Skip to main content

ログ取得ツール

Category: コンピュータ

TCPでsendmsg()を使う

TCPでsendmsgによりiovecでscatter/gatherなバッファから送信した場合。 MTUにおさまる限り、正しく1つのパケットになります。etherealで角煮を…じゃない、確認してみた。まあ当然そうあるべき、と思っていたがちゃんと確認したのは初めて。コピーがどう起こるのかは知らない。 カーネル(TCPドライバ? Etherドライバ?)がユーザ空間からのコピーついでにつなげてるのか、Etherのハードまでs/gでいってハードがつなげて送ってるのかは知らない。まあでもTCPだし1つのバッファにコピーしてるんだろうな。まあそんなことはどうでもいい。使おうこれ。 …後で読んでも意味不明だろうな。


#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

int main(int argc, char **argv)
{
  int s, flags=0, r;
  struct msghdr msg;
  struct iovec iov[2];
  struct sockaddr_in addr;
  int addrlen=sizeof(addr);
  const char *testdata1="test.\n";
  const char *testdata2="test2.\n";
  
  s=socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
  if(s==-1){ perror("socket"); return -1; }
  addr.sin_family=PF_INET;
  addr.sin_port=htons(9999);
  addr.sin_addr.s_addr=inet_addr("XXX.XXX.XXX.XXX");
  r=connect(s, &addr, addrlen);
  if(r==-1){ perror("connect"); return -1; }
  iov[0].iov_base=testdata1;
  iov[0].iov_len=strlen(testdata1);
  iov[1].iov_base=testdata2;
  iov[1].iov_len=strlen(testdata2);
  msg.msg_name=NULL;
  msg.msg_namelen=0;
  msg.msg_iov=iov;
  msg.msg_iovlen=2;
  msg.msg_control=NULL;
  msg.msg_controllen=0;
  msg.msg_flags=0;  // MSG_OOB|MSG_DONTROUTE|MSG_DONTWAIT|MSG_NOSIGNAL
  r=sendmsg(s, &msg, flags);
  printf("sendmsg(%d, %p, %d)=%d\n", s, &msg, flags, r);
  if(r==-1){
    perror("sendmsg");
  }
  close(s);
  return 0;
}

(前略)
0020  XX XX b4 61 27 0f c3 81  52 18 c3 98 f6 75 80 11   XX.a'... R....u..
0030  7f ff 5b d2 00 00 01 01  08 0a 00 d9 9b c7 00 d9   ..[..... ........
0040  9b c7 74 65 73 74 2e 0a  74 65 73 74 32 2e 0a      ..test.. test2.. 
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

アドレスを隠す意味などあるのだろうか??

未来のブックマーク

トップページを手抜きで整備していて思ったのは、RDF/RSSは未来のブックマークなのではないかということだ。ブックマークに登録したいのはページそのものであることもあるが、実はサイトを登録したいことが多い。これが自動的に記事の中身やタイトルまで最新のものに更新されるツリー構造になっていてほしいわけ。 たぶん、誰もhttp://www.asahi.com/(asahi.com)なんてブックマークしたくない。仮にhttp://bulknews.net/rss/rdf.cgi?Asahi(bulknews.net)をブックマークしておけば、トップはもちろんのこと、最新の記事まで飛べるだけの情報があるでしょ(bulknewsのリンクはワンクッションあるのがアレだが)。メニューを開くだけで、ページの中身を見ずに更新情報が見える。無駄なアクセスを減らせるではないか。広告さえ見えりゃいいなら、RDF/RSSのオプショナルに定義されている(?)画像とかに広告情報を埋め込んじゃえばいいじゃん。世の中はまだ不便だ。 だから、ブックマークにRDF/RSSを登録すると、更新情報が見やすいいい感じのメニューとして見えてくれるとちょっとうれしい。galeonやってくんねーかなー。wishlistにでも出そうかな。ブラウザ系だと、Mozilla FirebirdにはRSS Reader Panel(moo.jp)ちゅうものがあるらしい。やはりブックマークのエクステンションみたいな感じに見える。ちょっと使ってみたがなかなかいい感じ。ブックマークは全部こうなりゃいいんだよ。 (追記) 2003-08-01 10:46 ていうかブックマークについてはコンテンツをキャッシュしてほしいのとコメントをちゃんと書きたいというので、今の私はこのblogをブックマークとして扱っているのだが…。

Firebird 0.6.1

Mozilla Firebird 0.6.1が出てたよ。入れてみた。見た感じ、悪くはなってない。でもどこが良くなっているのかというと…まあ、マイナーバグフィックスらしいし。 リリースノート(mozilla.org)によれば、

  • Fix for the auto-complete crash bug
  • Fix for the DOM security restriction bug that broke many bookmarklets
  • contentEditable support
  • Brushed up default theme, including updated toolbar icons
  • New application icon

とのこと。

NECが中研を売る

NECが中央研究所を売り払うらしい、と今朝の日経に書いてあった。…探したけど、もしかしてコレ(nec.co.jp)のことかな?? (追記) 2003-08-01 09:41 ZDNetにも記事(zdnet.co.jp)は出ていたが…日経のほうのタイトルのつけかたがちょっと違うんじゃないのか。あるいはNECが、実は売り払うということをわかりにくく発表したのかな?

webbug問題は解決に向かうのか?

このへん(hatena.ne.jp)の話から。メディアに記事(internet.com)が掲載されたのだ。 メールによるマーケティングでは、HTMLメールに埋め込まれたWebbugやWebビーコンと呼ばれる小さな画像を使ってユーザの行動を追跡することができ、それらは有用な情報として秘かに使われてきた。ユーザの行動を追跡することは効果的な行動を取りたい企業にとっては正義なのだが、ユーザは個人情報保護の観点から言って気持ちが悪いわけだ。 この問題は、どこまでが許されるべきなのか、人によって意見が分かれるところだと思う。個人「わたなべ」と結びつかない「客#13」としての行動を追跡され、統計として使われても構わない人もいるだろう。あるいは「わたなべ」としての行動を追跡され、行動に基づいて「わたなべ様」に興味のある広告が送られてきて喜ぶ客もいる。あるいは逆に、あらゆる行動の追跡を嫌う人もいる。 理想的にはメールマーケティングに参加するときにユーザがいずれかを選択できるようにするべきとは思うが、選ばせたらだいたいの人が行動の追跡を拒否する(と思う)。 そんで、結局個人情報を提供させるにはインセンティブで釣るしかなくなってしまうと私は予想する。つまりWebビーコンをオンに設定するとこんなにいいことがありますよ、とか、1万円が当たるチャンスが発生、とかそういうの。多少の利益を還元してもらっても罰は当たらないと思う。その程度には有益な情報だ。それに、個人情報というのはその属性を持っている個人が所有するべき情報なので、同意なしに略奪するのは財産権の侵害に…まではつながらないか。

電話のちょっとおもしろい話

ZDNetに出てた記事1(zdnet.co.jp)、 2(zdnet.co.jp)、 3(zdnet.co.jp)、 4(zdnet.co.jp)。 なかなかおもしろい。しかし平均8000円か。ドコモよ、そりゃ払わせすぎだろ。街にやたらと携帯電話屋さんがあるのは不思議(というか不気味)だったが、1台売ってキャリアから4万円もらえるならば納得せざるを得ない。たしかに初期で4万円払って平均2年で買い換えられても、月8000円もらえるから、5ヶ月でモトを取れちゃうことになる。 くそう。消費者諸君、やっぱり月8000円は払いすぎだ。