30.test_tcpの中で2つサーバを動かしても、空いているポートを自動的に見つけて振り分けてくれるらしい。ここで、サーバをAnyEvent::Socketを使ったものにしてみた。33portがぶつかってしまった。これが起こるのは自分のMacBookの環境で、他のLinux環境ではちゃんと別々のportに振り分けられた。何が起こってるの?AnyEvent::Socket::tcp_server、Test::TCP::empty_portの実装を少し追ってみた。中身はsocket作ってbindしてlistenしたり、とやっているらしい。$!;というカンジ?一方、Test::TCP::empty_portでは、IO::Socket::INETを使ってsocketを作成できるかどうかでportの空きを見ているようだ。applicable).って書いてある。0というアドレスにbindされることになるらしい。$cv->recv;}って書き直したらちゃんと動くようになった...!環境による違い?なんでMacではダメでLinuxではアレで動いていたんだろう?という疑問。{};$cv->recv;というコードを走らせて、裏で使用portを調べてみる。Addressの扱いが環境によって違うっぽい。