socket连接开发中国电信接口客户端的问题,详情请进!

tonycrow 2004-02-02 02:00:06
我的系统是linux+apache+php+mysql的.
请教如何用socket连接开发中国电信接口客户端.

请哪位大侠给个思路,小弟没接触过此类东西,无从下手.
不知道是不是类似下面的情况:
$fp=fsockopen("***.***.***.***",**);
if($fp){
fputs($fp,"myfunction($para1,$para2)\n");
while(!feof($fp)){
fgets($fp,128);
}
fclose($fp);
}
或者是:
$fp=fsockopen("***.***.***.***",**);
if($fp){
fputs($fp,"00 00 00 11 22 33 44 55");
while(!feof($fp)){
fgets($fp,128);
}
fclose($fp);
}
...全文
117 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tonycrow 2004-02-03
  • 打赏
  • 举报
回复
太好了.非常感谢.

不过这是不是属于'异步通信'啊?
pwtitle 2004-02-03
  • 打赏
  • 举报
回复
给你一段我自己的网上手机短信发送代码,希望对你有用
<?
//手机注册函数
function mobile_register($mobile_no,$passwd)
{

$msg="欢迎使用“中伟网络办公伙伴” 您得密码是$passwd 成都中振 028-85177035 http://www.hizz.com.cn" ;

//调用发送短信函数
mobile_send($mobile_no,$mobile_no,$msg);

}//End Function



//手机短信发送函数
function mobile_send($from_name,$from_mobile,$to,$msg,$expire="")
{
if ($from_mobile=="") {
echo "<p style=color:white><B><IMG SRC=/img/menu/8.gif WIDTH=24 HEIGHT=25 BORDER=0 ALT=>您还没有注册手机短信功能,请到系统管理里注册后再使用!<br>";
echo "<p style=color:white>以上短信并未真实发送!</B><br>";

return false;

}
//$to形式为 num1,num2,num3,num4,num5...,但不能超过255个;
//把信息以内码ASC码16进制编码
//expire短信过期时间,如果不填默认当前时间
if(substr($to,-1,1)==","){
$to = substr($to,0,strlen($to)-1);
}
if ($expire==""){
$ScheduleTime=date("ymdHis",time());
$ExpireTime="";
}else{
$ScheduleTime=$expire;
$ExpireTime=$expire; //6小时后过期
}
$msg = $from_name.":".$msg;
$msg = bin2hex($msg);

//用TCP方式连接到短信网关
$fp=fsockopen("202.99.xxx.xxx",1020,&$errno, &$errstr, 10) or die("<p style=color:white;> 不能连接到Internet,请确信您得服务器是和Internet连接的!<INPUT TYPE=button class=\"bigButton\" onclick=\"javascript:history.go(-1)\" value=\" 返 回 \" size=\"20\"></p>");;

//发送用户信息,打开连线
fputs($fp,"login name=88444&pwd=passwd123&type=0\r\n");
$return=fgets($fp,4);
if($return!="Pass"){
echo "<p style=color:white;>不能连接到短信网关!请梢后再试!";
echo "<INPUT TYPE=button class=\"bigButton\" onclick=\"javascript:history.go(-1)\" value=\" 返 回 \" size=\"20\"></p>";
return false;
//exit;
}


fputs($fp,"Submit "); //发送短信
fputs($fp,"CommandID=1001"); //命令序列
fputs($fp,"&ItemID=111001"); //节目名
fputs($fp,"&FeeNumber=".$from_mobile); //发送者
fputs($fp,"&UserNumber=".$to); //接收者
fputs($fp,"&SpNumber=888444"); //SPnumber,发送号码
fputs($fp,"&Msgcode=15"); //编码类型
fputs($fp,"&FeeType=1"); //收费类型 1,免费 2,按条 3,包月
fputs($fp,"&ScheduleTime=".$ScheduleTime); //定时执行
fputs($fp,"&ExpireTime=".$ExpireTime); //报告类型
fputs($fp,"&Msg:=$msg\r\n"); //发送的信息内容

// echo fgets($fp,128);

// fputs($fp,"Report ");
// fputs($fp,"CommandID=1");
// fputs($fp,"&State=0");
fclose ($fp);

return true;

}

function insert_mobile_sms($db,$CAL_ID,$TO_ID,$MOBIL_NO,$MESSAGE,$SUBMIT_TIME,$M,$ALERT){
$sql="insert into sms_mobile (TO_ID,CAL_ID,MOBIL_NO,MESSAGE,SUBMIT_TIME,M,ALERT)values('$TO_ID','$CAL_ID','$MOBIL_NO','$MESSAGE','$SUBMIT_TIME','$M','Y')";
$db->query($sql);
}
function update_mobile_sms($db,$CAL_ID,$TO_ID,$MOBIL_NO,$MESSAGE,$SUBMIT_TIME,$M,$ALERT){
$sql="update sms_mobile set mobil_no='$MOBIL_NO',message='$MESSAGE',submit_time='$SUBMIT_TIME',m='$M',ALERT='$ALERT' where cal_id=$CAL_ID";
$db->query($sql);
}

?>
tonycrow 2004-02-03
  • 打赏
  • 举报
回复
刚好碰到个问题,关于异步通信的问题.
由于接口采用异步方式.而我以前没接触过这种方式.所以问题多多:
关键返回消息搞不大懂.
就比如吧:fputs($fp,submit(..));//发送
然后怎么取回消息呢?他的响音函数是submit_resp()

fputs($fp,submit(..));//发送
fgets($fp,128);//返回
这种方式是我知道的.

但我又不知道能不能写成:
fputs($fp,submit(..));//发送
fgets(submit_resp(),128);//返回
tonycrow 2004-02-03
  • 打赏
  • 举报
回复
谢谢大家.正在研究中.希望有做过电信接口客户端的大侠多提点思路
anybody999 2004-02-02
  • 打赏
  • 举报
回复
中国电信提供你公共接口 你只要安步就班的连接上就可以了
但是,一定要注意您的代码一定要很规范
还有,你要有授权!
causky 2004-02-02
  • 打赏
  • 举报
回复
你要熟悉中国电信接口的协议是什么,应该有一套规范吧

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧