哪位大侠有源码,可以接收发送成功的。procedure TForm1.Button4Click(Sender: TObject);
var
  r,s,s2,s3,s4,s5,mstr:string;
  cmdlong,tmp,int:integer;
begin
  s:='0031000D9168';
  s2:=SEncodeMobNO(Trim('13951927304'));
  s3:='0008A7';
  s4:='';
  s5:=EnCodeChinese(Memo2.text);
  tmp:=length(s5) div 2;
  s4:=format('%X',[tmp]);
  if length(s4)<2 then
   s4:='0'+s4;
  r:=s+s2+s3+s4+s5+^Z;  mstr:= 'AT+CMGF=1'#13;
  int:=length(mstr);
  comm1.WriteCommData(@mstr,int) ;
  sleep(100);
  mstr:= 'AT+CMGS='+inttostr(cmdlong)+#1;
  int:=length(mstr);
  comm1.WriteCommData(@mstr,int)  ;
  sleep(100);
  mstr:= r;
  int:=length(mstr);
  comm1.WriteCommData(@mstr,int)   ;
end;
function TForm1.SEncodeMobNO(SmobNO: string): string;
var
 TempPchar: Pchar;
 i: integer;
 Str: string;
begin
 if (copy(smobno, 1, 1) = '+') then //判断是否包含国家编码
  SmobNO := copy(smobno, 2, length(smobno) - 1); //去掉手机号码中的'+'
 if ((length(SmobNO) mod 2) = 1) then
  SmobNO := SmobNO + 'F';
  TempPchar := Pchar(SmobNO); //将字符串 Char数组化
 i := 0;
 Str := '';
 while i < length(TempPchar) do begin
  Str := Str + TempPchar[i + 1] + TempPchar[i];
  i := i + 2;
 end;
 result := Str;
end;function TForm1.EncodeChinese(Input: WideString): string;
var 
 i: Integer;
begin
  Result := '';
  for i := 1 to Length(Input) do
    Result := Result + Format('%4.4X', [ord(Input[i])]);
end;

解决方案 »

  1.   

    偶用SPCOMM开发有GPRS Modem接口,支持SMS和GPRS,但是不开源的,呵呵~
      

  2.   

    我用SPCOMM开发过短信猫的接口,有时间,我把它封装成com给大家用。
      

  3.   

    偶有源代码,调用api收发移动、联通、小灵通短信,应用于所有标准的GSMmodem,呵呵不过收点费用有意向可以联系我QQ:8671486
      

  4.   

    用AT+CMGS发送了短信长度后,接着是发送编码后的短信内容,结束符号为#26
    SendComm(Comm1,PDUText+#26);