📄 cmpp其它.txt
字号:
cmpp3.0--好大变化,谁想要啊?
1.CMPP_SUBMIT中计费字段和目的字段都增加了一个类型,指明是真实号码还是伪码
伪码是什么含义啊,没解释?
2.CMPP_SUBMIT增加了一个LinkID字段,说"点播业务使用的LinkID,非点播类业务的MT流程不使用该字段"
具体怎么用,也不太明白.
3.状态报告加了MA:xxxx、MB:xxxx、CA:xxxx、CB:xxxx的状态值,意料之中.
4.Register_Delivery字段删除对2(产生SMC话单)的支持;以后包月我猜应该是告诉ISMG某个用户包月了,ISMG每个月自动扣费,直到SP告诉ISMG,哦~~这个用户不要包月了.
1)伪码是为了防止SP获取用户手机号,在未获得运营商允许的前提下向用户发送消息。此举在某种意义上来说维护了用户的隐私权;
2)LinkID字段用于匹配用户的定购关系,只有用户进行了点播时才产生该LinkID,且submit消息中的LinkID必须与MO消息中的相同,如果是SP伪造的,ISMG无法匹配由相应MO消息产生的LinkID,因此拒绝将消息发给用户。此举保护了用户不受非法广告的骚扰;
3)...
4)以后包月话单不用SP发了,由其他节点代劳,但不是电话或者传真告诉ISMG,是什么节点再过半年就知道了。
在网络编程中,WinSocket API编程是最基本,也是最麻烦的地方(说句不怕影响形象的话,我对此就是一知半解)。但是,如果你是使用C++Builder作为编程平台,你就偷着乐吧,有了BCB,菜鸟变高手!:-)
在BCB中,TServerSocket和TClientSocket涵盖了基本的WinSocket编程,其中TServerSocket作为服务器方使用,TClientSocket作为客户端使用,这两个组件本身并不提供Socket连接,但是他们都有一个Socket属性,这个属性才提供了Socket连接。下面就先向大家介绍一下这两个组件常用的方法属性,然后在通过一个例子来看看这两个组件的使用。
1)TServerSocket
名称 类型 说明
Socket TServerWinSocket 最重要的属性,提供Socket连接,事实上发送/接收数据都要靠这个属性.
Port int 要监听的端口,如果在Service属性中指定了服务类型,此属性将被忽略.
Service AnsiString 提供的服务,如HTTP、FTP等,如果在这里指定了服务类型,
Port将被忽略,因为各种服务都有特定的端口,如FTP:21、HTTP:80
ServerType TServerType 设置与客户连接的方式,取值为两个枚举常量stNonBlocking和
stThreadBlocking,stNonBlocking表示用非阻塞方式连接每一个客户
每个连接都在一个单独的线程中处理。并用OnClientRead()和
OnClientWrite()通知服务器端的Socker进行读写。stThreadBlocking
表示以阻塞方式连接客户,即以主动查询的方式可客户连接。
Active bool 激活服务,相当于调用Open()方法。
OnAccept事件当有客户请求连接时触发
OnClientRead事件通知服务器去读取有关信息。OnClientWrite与此类似。
2)TClientSocket
名称 类型 说明
Socket TClientWinSocket 同TServerSocket
Active bool 同TServerSocket
Address AnsiString 服务器的IP地址,如202.98.35.14
ClientType TClientType 与服务器连接方式,取值为两个枚举常量ctNonBlocking,tBlocking。
ctNonBlocking表示非阻塞方式,ctBlocking表示阻塞方式,详见上例。
Host AnsiString 要连接的主机名,如www.cpcw.com
Port int 同TServerSocket
Service AnsiString 同TServerSocket
OnConnect事件当连接时发生,OnConnecting、OnDisConnect与此类似
OnRead事件通知客户机去读取有关信息。OnWrite与此类似。
TServerSocket和TClientSocket只提供基本的服务器/客户机的连接,真正提供数据传输的是它们都有的属性Socket,它的类型分别是TServerWinSocket和TClientWinSocket,而TServerWinSocket和TClientWinSocket的父类都是TCustomWinSocket,下面我们就来看看TServerWinSocket和TClientWinSocket常用的属性和方法。
共同的属性方法(来源于TCustomWinSocket)
名称 类型 说明
Connected bool 检查是否连接成功
LocalAddress AnsiString 本地IP地址,与此类似LocalHost:本机域名,LocalPort:本机端口
RemoteAddress AnsiString 另一端的IP地址,与此类似RemoteHost:另一端域名,
RemotePort:另一端端口
SocketHandle int 只读,返回Socket对象的Windows句柄,调用WinSocket API函数会用到它。
Handle HWND Socket能够接受到的异步事件都是以Windows消息的形式发送给此句柄的。
Close()方法作为服务器,关闭所有连接;作为客户机,关闭自己与服务器的连接
SendText(AnsiString)方法发送一个字符串,
SendBuf(void* buff,int count)发送缓冲区buff中的count个字节,返回实际发送的字节数
SendStream(TStream* AStream)发送一个流到Socket中。
ReceiveText()从Socket中读取并返回一个字符串。
ReceiveLength()从Socket读取数据需多少字节的缓冲区。
ReceiveBuf(void* buff,int count)从Socket中读取count字节的数据到buff。
TClientWinSocket
TClientWinSocket只增加了一个ClientType属性,
用于决定与服务器的连接类型(参见TClientSocket->ClientType)。
TServerWinSocket
名称 类型说明
ServerType 服务类型,参见TServerSocket->ServerType。
ActiveConnection int只读,返回当前活动的连接数。
Connection TCustomWinSocket数组,索引n表示第n+1个连接,如Connection[0]表示第一个连接。
有了这些知识,我们就可以完成一些基本的WinSocket编程了,下面就结合一个简单的闲聊程序来看看具体的应用。
首先在窗体上放置以下VCL组件,并修改相应属性:
类型 Name 属性 Caption/Text 说明
TCheckBox ckListen 监听当选取时,本程序作为服务器
TCheckBox ckConnect 连接当选取时,本程序作为客户机
TEdit edName 无名氏闲聊时所用的名字。
TBitBtn bbtSave&S 保存单击时保存谈话内容
TBitBtn bbtClose&C 关闭单击时关闭此窗口(设置Kind=bkClose)
TEdit edTalk 在此输入谈话内容
TMemo &nb
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -