代码改变世界

WM下的MMS开发

2008-06-27 17:00  cppguy  阅读(1839)  评论(2编辑  收藏  举报

         彩信是多媒体信息服务(即MMS,它是Multimedia Messaging Service的缩写)业务,它最大的特色就是支持多媒体功能,能够传递功能全面的内容和信息,这些信息包括文字、图像、声音、数据等各种多媒体格式的信息.

         这里我们主要讨论一下在.net cf下发送MMS的实现过程

         首先我们要先讨论一下SMS与MMS的不同。除了发送接收内容比如图片铃声等多媒体内容的不同,最终要的是他们俩经过的管道是不同的。MMS是需要2.5G网络的支持。SMS的传输总是由处于GSM外部的SMSC(Short Messaging Service Center,短消息服务中心)进行中继。而MMS是以WAP无线应用协议为载体传送视频片段、图片、声音和文字。支持语音、因特网浏览、电子邮件、会议电视等多种高速数据业务,实现即时的手机端到端、手机终端到互联网或互联网到手机终端的多媒体信息传送。

        多媒体短信业务是在GPRS网络或cdma2000 1X网络的支持下的,这里我们只以中国移动的梦网做入口的G网做例子,因为G网与C网由于上网入口的不同,对于开发来说mms转发中心与端口都是不一样的。

首先介绍两个常量

public string _mmscUrl = "http://mmsc.monternet.com";彩信服务器地址(MMSC url地址):
public string _proxyUrl = "10.0.0.172:80";IP网关地址

既然是走Wap网,那么我们发送就要使用HttpWebRequest

WebRequest request = WebRequest.Create(_mmscUrl);

HttpWebRequest httpRequest = (HttpWebRequest)request;

对Http的web请求进行配置

request.Proxy = new WebProxy(_proxyUrl); 配置IP网关地址

request.ContentType = "application/vnd.wap.mms-message";
httpRequest.Accept = "application/vnd.wap.mms-message,text/plain,*/*"; request.Method = "POST";
httpRequest.KeepAlive = false;
  httpRequest.UserAgent = "Nokia6681/2.0   (4.00.15)   SymbianOS/8.0   Series60/2.6   Profile/MIDP-2.0   Configuration/CLDC-1.1";
//写入二进制流的彩信数据
byte[] content = msg.GetContent();

httpRequest.ContentLength = content.Length;
Stream requestStream = request.GetRequestStream();

//得到返回信息

WebResponse wRes = request.GetResponse();
                HttpWebResponse hRes = (HttpWebResponse)wRes