VB.NETのSocket受信に変な改行

VB.NETで、教科書通りにソケット通信。

  1. System.Net.Sockets.Socketクラスのインスタンスを作成、BeginAccept()でコネクションを待ち受け。
  2. 接続要求が来たらEndAcceptを呼んで返ってきたSystem.Net.Sockets.Socketクラスのインスタンスを保持。
  3. このインスタンスにBeginReceive()を呼んで、作成済みのdelegateをセットする。
  4. データが来るとdelegateが呼ばれるので、とりあえずSystem.Byteクラスの配列に格納。
  5. ある程度データが溜まったら、System.Text.Encoding.ASCII.GetString()でStringクラスに変換し処理する。

こうやってStringクラスに格納した受信データですが、Windows標準のtelnetだと問題無いのに、UTF-8 Teraterm Pro with TTSSH2LinkPoderosaLink でデータを送ると、改行コードが変。¥r(13h)の後に正体不明の文字が。送信改行コードをCRにしてもCR+LFにしても出る。この文字、Microsoft.VisualBasic.AscW()で変換しません。何だコリャ?

今のところ受信データはASCIIテキストということで、以下の方法で除去。これで実用上問題無いけど、何か気になるな・・・

str = System.Text.RegularExpressions.Regex.Replace(str, "[^0-9a-zA-Z!-/¥r¥n¥s]", "")

— posted by mu at 05:49 pm   commentComment [0]  pingTrackBack [0]

 

今日のミルリリ

blog20070409millily

最近これか桜ばっかりですが^^;ミルリリー1に対するオブリリーの数が400を切ってまして、まぁよく出ること。以前ドロップ率10倍で鬼周回したときが800台後半だったので、半分以下。この出現率が10倍の時だったらなぁ。

落し物: メセタ
刈ったオブリリー/ミルリリー: 5653/15

— posted by mu at 01:24 am   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0253 sec.
prev
2007.4
next
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