Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ネットワークこわいネットワークこわい
とちぎRuby会議07
2017-08-26
とみたまさひろ
1
Ruby歴 約20年
(本日の老害枠の一人)
得意分野: 文字化け
Software Design 2016年12月号
「Rubyと文字コード」/「MySQLと文字コード」
Software Design 2017年7月号
「MySQL[SEL...
Ruby成分なし
3
ネットワークサーバープロセスを起動しようとしたら
エラー
% ruby -rsocket -e 'TCPServer.new(12345).accept'
-e:1:in `initialize': Address already in use...
「ははーん、さては誰かが12345ポートを掴んでるな」
5
あれ?
% sudo netstat -an | grep 12345
%
6
あれ?
% sudo lsof -i -P | grep 12345
%
7
なんだかわからない!
8
原因は…
9
ふつうはTCPサーバーは、
socket()
bind()
listen()
accept()
するんだけど
bind()で止まってるやつがいた
10
Rubyで書くとこんな感じ
Socket.new(:INET, :STREAM).
bind(Addrinfo.tcp("0.0.0.0", 12345))
sleep
11
このようなプロセスはどうやったら調べられるか
12
わかりません!���
13
こわい �������
14
Upcoming SlideShare
Loading in …5
×

ネットワークこわい

659 views

Published on

とちぎRuby会議07 LT その2

Published in: Technology
  • Be the first to comment

ネットワークこわい

  1. 1. ネットワークこわいネットワークこわい とちぎRuby会議07 2017-08-26 とみたまさひろ 1
  2. 2. Ruby歴 約20年 (本日の老害枠の一人) 得意分野: 文字化け Software Design 2016年12月号 「Rubyと文字コード」/「MySQLと文字コード」 Software Design 2017年7月号 「MySQL[SELECT文]集中講座」 今日は長野から5時間かけてきました (普通に新幹線使えば3時間) 2
  3. 3. Ruby成分なし 3
  4. 4. ネットワークサーバープロセスを起動しようとしたら エラー % ruby -rsocket -e 'TCPServer.new(12345).accept' -e:1:in `initialize': Address already in use - bind(2) for nil port 12345 (Errno::EADDRINUSE) from -e:1:in `new' from -e:1:in `<main>' 4
  5. 5. 「ははーん、さては誰かが12345ポートを掴んでるな」 5
  6. 6. あれ? % sudo netstat -an | grep 12345 % 6
  7. 7. あれ? % sudo lsof -i -P | grep 12345 % 7
  8. 8. なんだかわからない! 8
  9. 9. 原因は… 9
  10. 10. ふつうはTCPサーバーは、 socket() bind() listen() accept() するんだけど bind()で止まってるやつがいた 10
  11. 11. Rubyで書くとこんな感じ Socket.new(:INET, :STREAM). bind(Addrinfo.tcp("0.0.0.0", 12345)) sleep 11
  12. 12. このようなプロセスはどうやったら調べられるか 12
  13. 13. わかりません!��� 13
  14. 14. こわい ������� 14

×