当前位置:编程学习 > C#/ASP.NET >>

GBK编码发送问题

我在做一个网络通讯主,从机的程序,
(2)NEW
该指令由主机端发送给从机端,发起一个新的测试任务。测试任务的参数位于附加数据部分,字符编码为GBK。下面是一个示例(其中Content-Length参数对用以说明附加数据的总长度,下同):
NEW\r\n
Content-Length:80\r\n\r\n
{'name':'张三','sex':'男','age':30,'height':160,'weight':60,'ssy':100
,'szy':140}
以上是一条主机向从机发的指令,说要用GBK编码发,那这包数据我应该如何发送呢,收到的数据也是这个码制的话,我又要如何解码呢。请高人指点
我用的是VB2008,这个是PY开发的从机端,给我原码了,不过我没大看懂。
--------------------编程问答-------------------- 不懂。。。 --------------------编程问答-------------------- 看看GBK编码的具体协议,应该比较简单的 --------------------编程问答-------------------- 我看了协议,没大打懂
2. SDP包长说明
SDP包长说明位于SDP包的前4字节。用于指示该SDP包的有效数据长度(不包括这4字节的长度),其值为整数的网络字节序。例如,一个SDP包的长度为200字节,则SDP包长说明应为'\x00\x00\x00\xc8'。
前面还要加一个包头,那位高手能帮帮我,最好能给代码,我这方面是新人,做上位机串口的没做过这方面的
谢谢, --------------------编程问答--------------------   Private Sub SendData()发包
        Dim bteAcceptData(1024) As Byte
        Dim lngAcceptData As Long
        Dim setchar0 As String
        Dim setchar1 As String
        Dim setchar2 As String
        Dim setchar As String
        setchar0 = "NEW" & vbCrLf
        setchar2 = "{name:张三,sex:男,age:30,height:160,weight:60,ssy:100,szy:140}"
        Dim strlen As Integer = number(setchar2)
        setchar1 = "Content-Length:" & CStr(strlen) & vbCrLf
        setchar = setchar0 & setchar1 & setchar2
        Dim n As Integer = number(setchar)
        Dim scount As String = Hex(0) & Hex(0) & Hex(0) & Hex(n)
        Try
            setchar = scount & setchar
            MsgBox(setchar)
            lngAcceptData = myAcceptSocket.Send(Encoding.Unicode.GetBytes(scount & setchar))
            txtMessage.Text += "传送了 " + lngAcceptData.ToString + " 个位组的资料 !!" + vbCrLf
        Catch ex As SocketException
            MessageBox.Show(ex.Message)
        End Try
    End Sub


'求字符长度

  Private Function number(ByVal s As String) As Integer
        Dim n As Integer
        Dim StrLen As Integer
        For n = 1 To Len(s)
            If AscW(Mid(s, n, 1)) > 256 Then
                StrLen = StrLen + 2
            Else
                StrLen = StrLen + 1
            End If
        Next n
        Return StrLen
    End Function
这样发,从机没反应,高人帮我看看,谢谢 --------------------编程问答-------------------- 楼上基本可以实现,只不过用Encoding.UTF8更快! --------------------编程问答-------------------- 四楼的就是我写的,还是不行,UTF8也是GBK??
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,