首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

socket与设备进行http通信发送的控制信息需要加http包头吗?解决办法

2011-12-29 
socket与设备进行http通信发送的控制信息需要加http包头吗?IPAddress[]ipaDns.GetHostAddresses( 192.16

socket与设备进行http通信发送的控制信息需要加http包头吗?
IPAddress[]   ipa   =   Dns.GetHostAddresses( "192.168.1.126 ");
                        IPEndPoint   ipe   =   new   IPEndPoint(ipa[0],   80);
                        Socket   ipc   =   new   Socket(AddressFamily.InterNetwork,   SocketType.Stream,   ProtocolType.Tcp);
                        string   tobesend   =   "ipcam   console   admin:123456\r\n ";//说明书上用此字符串连接设备,我使用以后不成功,receive了256个0.如果直接用video   show   resolution(此为控制台命令,返回设备视频的格式)则返回一串什么http   method <video> 不成功的说明.我的问题是,与设备进行http通信,难道只是建立socket连接就可以直接发送字符串命令而不用加http包头了吗?意思就是string   tobesend直接被赋成 "ipcam   console   ab:ab\r\n "而不加什么包头?                          
                        byte[]   bytesend   =   Encoding.ASCII.GetBytes(tobesend);
                        Byte[]   byteget   =   new   Byte[256];

                                ipc.Connect(ipe);

                                if   (ipc.Connected)
                                {
                                        ipc.Send(bytesend,   bytesend.Length,   0);

                                        int   num   =   0;
                                        string   result   =   " ";
                                        do
                                        {
                                                num   =   ipc.Receive(byteget,   byteget.Length,   0);
                                                result   =   result   +   Encoding.ASCII.GetString(byteget,   0,   num);
                                        }   while   (num   >   0);
                                        Console.WriteLine( "result   is: "   +   result);
                                        Console.ReadLine();



                                  else
                                {
                                        Console.Write( "not   connect ");
                                        Console.ReadLine();
                                }
照说明书上的说   建立TCP连接10秒内发送ipcam   console   username:password\r\n到设备应该返回的是ok,false等等的简单消息啊

[解决办法]
1、socket通讯不支持http协议。
2、socket通讯,不需要加包头。需要注意的是字符格式和数据类型。
[解决办法]
如果是连接web服务就需要加协议头部分啊,像method:post啊referer啊cookie啊什么的,所以,如果你想连接web服务,那么用httpwebrequest会方便很多

热点排行