亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mmsjavamm1iinterface.c

?? mms mm1 interface client code
?? C
字號:
GPRS 編程通信如何通過串口的編程實現GPRS模塊在網路上傳輸數據的系列問題  (討論)

通過GPRS模塊發送MMS 
開放 mm1接口發送彩信(也就是GPRS modem發送彩信) 代碼 c#版 

mm1接口也就是手機終端和mmsc(中國移動就是http://mmsc.monternet.com)用來發送mms message的接口, GPRS modem當然也是可以使用這一接口發送的.

using System;
using System.Net;
using System.IO;
using System.Diagnostics;
using System.Threading;
using System.Collections;
using System.Text;

namespace MMSLib
{
/// <summary>
/// MMSender 的摘要說明。
/// 
/// </summary>
public class MMSender
{
// 設置參數
string sMmscUrl="http://mmsc.monternet.com";
string sProxyUrl="10.0.0.172:80";

public MMSender()
{
//
// TODO: 在此處添加構造函數邏輯
//
}
public void SetMMSC(string szUrl)
{
sMmscUrl =szUrl;
}
public void SetProxy(string szUrl)
{
sProxyUrl = szUrl;
}


/* 發送MMS的過程
1> 創建消息發送接口
  MMSender ms = new MMSender();
2> 設置參數屬性
  默認屬性已經是中國移動參數,因此如果是中國移動用戶,以下兩個操作可以不需要
  ms.SetMMSC("http://mmsc.monternet.com");
  ms.SetProxy("10.0.0.172:80");
3> 創建消息
  MMessage mm= new MMessage();
4> 設置消息內容
  mm.SetSubject("標題");      // 設置標題
  mm.AddTo("13825271511");    // 添加接收號碼,調用一次添加一個接收號碼
  mm.AddFile("FileName");     // 添加發送文件,包含文件路徑,調用一次添加一個發送文件
5> 發送消息
   string szReult =ms.Send(mm);
   
6> 繼續發送其他號碼
  mm.ClearTo();
  mm.AddTo("13812345678");
  ms.Send(mm);     
*/


/* 避免協議沖突的設置
<configuration>
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true"/>
</settings>
</system.net>
</configuration>
    */
public string Send(MMessage mm)
{
try
{
// 驗證參數有效性
WebRequest wReq = WebRequest.Create(sMmscUrl);
HttpWebRequest hReq = (HttpWebRequest)wReq;
wReq.Headers.Clear();
if( sProxyUrl.Length >0)
wReq.Proxy = new WebProxy(sProxyUrl);

wReq.ContentType ="application/vnd.wap.mms-message";
hReq.Accept ="application/vnd.wap.mms-message,text/plain,*/*";
wReq.Method ="POST";
hReq.KeepAlive = false;
hReq.UserAgent = "Nokia6681/2.0 (4.00.15) SymbianOS/8.0 Series60/2.6 Profile/MIDP-2.0 Configuration/CLDC-1.1";
// Write Post Dat
byte[] byMM = mm.GetContent();
hReq.ContentLength = byMM.Length;
Stream sReq = wReq.GetRequestStream();
sReq.Write(byMM,0,byMM.Length);
sReq.Close();
// Http Request
WebResponse wRes= wReq.GetResponse();
HttpWebResponse hRes = (HttpWebResponse)wRes;
if ( hRes.StatusCode == HttpStatusCode.OK)
{
Stream sRes = wRes.GetResponseStream();
StreamReader sr = new StreamReader(sRes);
string szResult =sr.ReadToEnd();  // 發送結果
// Parse result sring
return szResult;
}
}
catch(Exception e)
{
throw new Exception(e.Message);
}
return string.Empty;
}
}
}

public class MMessage
{
string Subject ="";
int nSeconds =0; // 設置送達的時間,當前相對時間,以秒為單位
ArrayList lFile = new ArrayList();   // 彩信文件列表
ArrayList lDest = new ArrayList();   // 發送號碼集合

static long nSeq =0;

public MMessage()
{
//
// TODO: 在此處添加構造函數邏輯
//
}

public void SetSubject(string szSubject)
{
Subject =szSubject;
}
public void SetDeliverTime(int nSec)
{
nSeconds = nSec;
}
// 
public void AddTo(string Dest)
{
lDest.Add(Dest);
}

public void AddFile(string File)
{
lFile.Add(File);
}

public void ClearTo()
{
lDest.Clear();
}

// 得到二進制編碼字節
public byte[] GetContent()
{

byte[] byMms = new byte[0];
// 消息頭開始
//X-Mms-Message-Type
byMms = AppendOct(new byte[]{0x8C,0x80},byMms);
//X-Mms-Transaction-ID
byMms = AppendOct(new byte[]{0x98},byMms);
byMms= AppendOct(nSeq.ToString(),byMms);
nSeq++; // 序列號加1

byMms= AppendOct(new byte[]{0x0},byMms);

//X-Mms-MMS-Version
byMms = AppendOct(new byte[]{0x8D,0x90},byMms);
//Date

//From,設置為 Insert-address-token
byMms = AppendOct(new byte[]{0x89,0x01,0x81},byMms);

//To
for(int i=0;i<lDest.Count;i++)
{
byMms= AppendOct(new byte[]{0x97},byMms);
byMms= AppendOct("+86"+ (string)lDest[i] +"/TYPE=PLMN",byMms);
byMms= AppendOct(new byte[]{0x0},byMms);
}
//Subject
if(Subject.Length >0)  // 使用Utf8編碼
{
byMms= AppendOct(new byte[]{0x96},byMms);
// Value-length Char-set Text -string
byte[] byLen= new byte[1];
byLen[0] = (byte) (Encoding.UTF8.GetByteCount(Subject) +2);
byMms= AppendOct(byLen,byMms);
// Char-set 為utf-8
byMms= AppendOct(new byte[]{0xEA},byMms);
byMms= AppendOct(Encoding.UTF8.GetBytes(Subject),byMms);
byMms= AppendOct(new byte[]{0x0},byMms);
}
// X-Mms-Delivery-Time,遞送時間 = Relative-token Delta-seconds-value
// Relative-token = 0x81
// Delta-seconds-value =Long-integer
// Long-integer = Short-length Multi-octet-integer
if( nSeconds >0)
{
byMms= AppendOct(new byte[]{0x87},byMms);
byte[] bfTime = BitConverter.GetBytes(nSeconds);  // 默認使用Big-endian,需用改為Little-endian
// bfTime改為Little-endian
Array.Reverse(bfTime);
byte[] bfTimeLen = new byte[3];
bfTimeLen[0] = (byte) (bfTime.Length + 2);
bfTimeLen[1] = 0x81;  // 相對時間格式
bfTimeLen[2] = (byte)bfTime.Length;
byMms= AppendOct(bfTimeLen,byMms);
byMms= AppendOct(bfTime,byMms);
}

//Content-Type:application/vnd.wap.multipart.mixed
byMms = AppendOct(new byte[]{0x84,0xA3},byMms);
// 消息體開始(MIME multipart)
// 8.5.2 Multipart Header
// nEntries Uintvar The number of entries in the multipart entity
byte[] byFileCount = new byte[1];
byFileCount[0] = (byte)lFile.Count;
byMms = AppendOct(byFileCount,byMms);
// 8.5.3 Multipart Entry,逐個加入媒體文件
for(int j=0;j<lFile.Count;j++)
{
byMms = AppendOct(GetMmsContent(lFile[j].ToString()),byMms);
}
return byMms;
}

// Tools
// 加入媒體文件到彩信內容中去
private byte[] GetMmsContent(string FileName)
{
// 每一個Multipart Entry由5個部分組成
/* HeadersLen
 * DataLen
 * ContentType
 * Headers
 * Data
 * */
byte[] byHeaders = new byte[0];   // ContentType和Headers組合
byte[] byData = ReadFromFile(FileName);

string FileID = getContentId(FileName);
// Set content-type
if( FileName.EndsWith(".txt"))
{
byHeaders = new byte[1];
byHeaders[0] = (byte) (Encoding.ASCII.GetByteCount(FileID)+5);
byHeaders = AppendOct(new byte[]{0x83,0x85},byHeaders);   // Utf-8
byHeaders = AppendOct(Encoding.ASCII.GetBytes(FileID),byHeaders);
byHeaders = AppendOct(new byte[]{0x00},byHeaders);
byHeaders = AppendOct(new byte[]{0x81,0xEA},byHeaders);
}
else if( FileName.EndsWith(".gif"))
{
byHeaders = new byte[]{0x9D};
}
else if( FileName.EndsWith(".mid") || FileName.EndsWith(".midi"))
{
byHeaders = Encoding.ASCII.GetBytes("audio/midi");
byHeaders = AppendOct(new byte[]{0x00},byHeaders);  // 文本需要以0x00結尾
}

// 加入Content-ID和Content-Location
byHeaders = AppendOct(new byte[]{0xC0,0x22,0x3C},byHeaders);
byHeaders = AppendOct(Encoding.ASCII.GetBytes(FileID),byHeaders);
byHeaders = AppendOct(new byte[]{0x3E,0x00},byHeaders);
//加入Content-Location
byHeaders = AppendOct(new byte[]{0x8E},byHeaders);
byHeaders = AppendOct(Encoding.ASCII.GetBytes(FileID),byHeaders);
byHeaders = AppendOct(new byte[]{0x00},byHeaders);

byte[] byHeaderLen = encodeUintvar( byHeaders.Length);
byte[] byDataLen = encodeUintvar(byData.Length);

byte[] byMmc = new byte[ byHeaderLen.Length + byDataLen.Length + byHeaders.Length +  byData.Length ];
Array.Copy( byHeaderLen,byMmc,byHeaderLen.Length);
Array.Copy( byDataLen,0,byMmc,byHeaderLen.Length,byDataLen.Length);
Array.Copy( byHeaders,0,byMmc,byHeaderLen.Length+byDataLen.Length,byHeaders.Length);
Array.Copy( byData,0,byMmc,byHeaderLen.Length +byDataLen.Length +byHeaders.Length,byData.Length);

return byMmc;
}

private byte[]  encodeUintvar(int n)
{
byte[] buf = new byte[8];
int l=0;
while(n >=128)
{
byte b = (byte)(n &0x7F);
n = n >> 7;
buf[l++] =b;
}
buf[l++]= (byte)n;

byte[] retBys = new byte[l];
for(int i=0;i<l;++i)
{
retBys[i] = (byte)(buf[l-i-1]|0x80);
}
retBys[l-1] &= 0x7F;
return retBys;

}
// 從文件中讀取字節
private byte[] ReadFromFile(string FileName)
{
byte[] bf = new byte[0];
FileStream fs = null;
try
{
fs= new FileStream(FileName,FileMode.Open,FileAccess.ReadWrite,FileShare.None);  // 沒有設定Buffsize
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
if( fs!=null)
{
bf = new byte[fs.Length];
fs.Read(bf,0,(int)fs.Length);
fs.Close();
}
return bf;
}
// 得到文件名(不包含文件夾部分)
private string getContentId(string FileName)
{
int at =FileName.LastIndexOf("\\");
if( at <0)
return FileName;
else
return FileName.Substring(at+1);
}
// 增加字節
private byte[] AppendOct(byte[] bys,byte[] byDest)
{
byte[] bysNew =new byte[byDest.Length +bys.Length];
try
{
Array.Copy(byDest,bysNew,byDest.Length);
Array.Copy(bys,0,bysNew,byDest.Length,bys.Length);
}
catch(Exception e)
{
Console.WriteLine(e);
}
return bysNew;
}
// 增加字符串
private byte[] AppendOct(string sz,byte[] byDest)
{
return AppendOct(Encoding.Default.GetBytes(sz),byDest);
}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91一区在线观看| 成人污视频在线观看| 国产精品国产a级| www国产精品av| 欧美成人一区二区| 日韩女优制服丝袜电影| 6080国产精品一区二区| 欧美二区乱c少妇| 欧美妇女性影城| 91精品国产综合久久蜜臀| 欧美人牲a欧美精品| 欧美日韩视频在线一区二区| 欧美亚洲日本一区| 91精品综合久久久久久| 欧美日韩国产大片| 日韩亚洲欧美综合| 日韩精品一区二区在线| 久久久久久亚洲综合| 国产亚洲精品aa午夜观看| 久久看人人爽人人| 国产精品久久久久影院老司| 亚洲欧洲另类国产综合| 一区二区在线免费| 午夜视频久久久久久| 麻豆精品在线观看| 国产综合色在线视频区| 成人久久视频在线观看| 99精品一区二区三区| 欧美三级资源在线| 欧美精品一区二区蜜臀亚洲| 国产精品丝袜黑色高跟| 亚洲人成在线播放网站岛国| 亚洲国产成人av网| 久久超级碰视频| 成人av电影在线观看| 欧美视频在线一区| 久久一区二区视频| 一区二区激情小说| 国产最新精品精品你懂的| 成人av动漫在线| 91精品国产综合久久精品| 国产午夜精品福利| 亚洲国产精品嫩草影院| 国产精品综合在线视频| 色偷偷久久人人79超碰人人澡| 91.xcao| 欧美激情综合网| 婷婷综合久久一区二区三区| 国产高清久久久| 欧美日韩精品免费观看视频| 久久久精品黄色| 日韩激情一区二区| 91在线精品一区二区三区| 日韩一级精品视频在线观看| 亚洲日本在线天堂| 国产美女视频91| 91精品国产aⅴ一区二区| 中文字幕中文在线不卡住| 久久福利资源站| 欧美日韩一区二区三区免费看| 欧美激情一区三区| 麻豆国产一区二区| 欧美色男人天堂| |精品福利一区二区三区| 国产麻豆精品视频| 91精品国产品国语在线不卡| 亚洲一区精品在线| 91一区一区三区| 国产精品久久久久婷婷| 国内不卡的二区三区中文字幕| 在线电影欧美成精品| 一区二区三区中文字幕电影| 波多野结衣在线aⅴ中文字幕不卡| 日韩三级中文字幕| 奇米一区二区三区| 91精品国产综合久久精品图片| 亚洲午夜免费福利视频| 99国产精品久久久久久久久久 | 91福利国产成人精品照片| 国产人妖乱国产精品人妖| 国产在线精品免费av| 欧美成人免费网站| 久久99久久精品| 26uuu久久综合| 国产一区激情在线| 国产清纯白嫩初高生在线观看91| 国产成人免费在线观看不卡| 精品久久免费看| 国产酒店精品激情| 国产欧美一区二区三区在线看蜜臀| 国产精品一区不卡| 国产精品乱码妇女bbbb| 色哟哟亚洲精品| 亚洲小说欧美激情另类| 在线播放91灌醉迷j高跟美女| 午夜精品久久久久| 欧美成人官网二区| 国产成人av电影在线| 国产精品国产自产拍高清av王其| 97国产一区二区| 亚洲不卡在线观看| 日韩一级免费观看| 成人午夜电影网站| 亚洲精品菠萝久久久久久久| 欧美精品国产精品| 国内精品免费在线观看| 亚洲国产精品激情在线观看| 91精品办公室少妇高潮对白| 天天影视涩香欲综合网| 精品国产乱码久久久久久影片| 国产成人亚洲综合a∨婷婷| 自拍偷拍欧美激情| 日韩一区二区三区视频在线| 国产麻豆日韩欧美久久| 亚洲免费在线看| 欧美一区二区三区影视| 丰满亚洲少妇av| 五月天激情综合网| 日本一区二区综合亚洲| 欧美日韩精品一区二区在线播放 | 91精品国产一区二区人妖| 国产精品18久久久| 丝袜美腿亚洲综合| 中文字幕欧美日本乱码一线二线| 欧美日韩精品一区二区三区蜜桃 | 精品av久久707| 一本色道综合亚洲| 激情伊人五月天久久综合| 亚洲日本在线观看| 久久奇米777| 欧美乱熟臀69xxxxxx| www.久久久久久久久| 免费观看在线色综合| 最新久久zyz资源站| 精品国产露脸精彩对白| 欧美色国产精品| 91社区在线播放| 国产精品99久久久久| 免费三级欧美电影| 亚洲自拍偷拍麻豆| 国产精品久久久久久妇女6080 | 精品一区二区三区在线播放 | 欧美亚洲动漫精品| 99久久精品一区| 国产精品1区二区.| 国内一区二区视频| 午夜精品久久久久久久久久久| 国产精品嫩草久久久久| 精品久久一区二区三区| 欧美一区二区三区免费在线看 | 色呦呦网站一区| 成人性视频免费网站| 国产精品一二三在| 狠狠色狠狠色综合日日91app| 视频一区二区欧美| 日日夜夜免费精品视频| 一区二区三区四区国产精品| 亚洲少妇30p| 日韩一区有码在线| 国产精品另类一区| 亚洲视频1区2区| 夜夜嗨av一区二区三区网页| 一区二区三区在线观看欧美| 亚洲日本青草视频在线怡红院| 亚洲欧洲精品天堂一级| 国产精品乱码久久久久久| 国产精品久久国产精麻豆99网站| 国产精品麻豆99久久久久久| 中文字幕一区二区视频| 亚洲欧美日韩国产手机在线 | 欧美在线|欧美| 欧美亚洲国产怡红院影院| 欧美另类高清zo欧美| 日韩一区二区在线观看| 精品国产91洋老外米糕| 中文字幕va一区二区三区| 亚洲视频一区二区免费在线观看| 一区二区成人在线| 日韩高清电影一区| 激情久久五月天| 波多野结衣在线一区| 欧美专区在线观看一区| 日韩一区二区在线观看| 久久九九久久九九| 亚洲免费在线视频| 蜜臀av在线播放一区二区三区| 国产在线视频精品一区| 91视频观看免费| 91麻豆精品国产91久久久久久久久| 日韩区在线观看| 欧美国产综合色视频| 亚洲国产精品久久久男人的天堂| 美女尤物国产一区| 91在线视频免费91| 日韩亚洲欧美综合| 亚洲激情六月丁香| 国产在线精品国自产拍免费| 在线国产亚洲欧美| 久久久精品中文字幕麻豆发布| 亚洲在线成人精品|