- 題名: socket通信で一文字ずつしか送れないのですが
- 日時: 2012/01/12 15:38:23
- ID: 29585
- この記事の返信元:
- (なし)
- この記事への返信:
- [29586] Re[1]: socket通信で一文字ずつしか送れないのですが2012/01/12 16:33:18
- ツリーを表示
■No29585に返信(hanadaさんの記事) > System.Text.Encoding.GetEncoding("utf-16").GetBytes("build('XAngle',12)") utf-16 だと、"build(…" は 62 00 75 00 69 00 6C 00 64 00 28 00 … になりますし、utf-8 や ASCII だと 62 75 69 6C 64 28 … になりますね。 > ユニコードで"build('XAngle',12)"という文字列送るのが目的です。 文字集合が Unicode という事は分かりましたが、エンコードは何でしょうか。 1 文字ずつ分断されて解釈されてしまうということは、もしかして受け取り側が、 UTF-16(LE) ではなく UTF-8 を望んでいる…ということは無いでしょうか。
分類:[.NET]
とある機器にsocket通信で命令文を送りたくてプログラム中です。
ユニコードで"build('XAngle',12)"という文字列送るのが目的です。
以下のコードで接続には成功するのですが、
'**************************************
Public Class Form1
Private objSck As New System.Net.Sockets.TcpClient
Private objStm As System.Net.Sockets.NetworkStream
Private Sub Form1_Load( _
ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MyBase.Load
objSck.Connect("192.51.248.211", 5123)
objStm = objSck.GetStream()
End Sub
Private Sub Button1_Click( _
ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button1.Click
Dim dat As Byte() = _
System.Text.Encoding.GetEncoding("utf-16").GetBytes("build('XAngle',12)")
objStm.Write(dat, 0, dat.GetLength(0))
End Sub
End Class
**************************************
socket関連のサンプルではたいてい1文字ずつ送っているようで、相手機器側で
"b" SyntaxError
"u" SyntaxError
"i" SyntaxError
"l" SyntaxError
・
・
・
となってしまいます・・・
一行ずつ送るにはどうすればよいでしょうか?