可直接上网的PC机如何连接带GPRS模块的硬件? 我的硬件带有GPRS模块,可以上网,我用下载的软件可以看到这个模块连接到我的PC后显示该模块的IP,该GPRS模块已经包含PPP、TCP/IP协议。看过一些帖子,说GPRS上网后显示的IP是移动公司的内部IP,是不是不能编成和这个IP连接?那请问我该如何编成实现和这个带GPRS模块的硬件进行数据通讯呢?都需要使用什么控件? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 由于本人从没接触过这方面的程序,可能问题比较幼稚,请大家不要笑,我会虚心学习。由于本人英语水平很一般,所以一看到英文的文章就头疼,所以掌握的东西比较少,不过我还会努力学习,并且还请大家多多指教。我现在使用IdTCPServer控件,已经能收到GRPS模块传来的连接信息(代码如下):procedure TFormMain.IdTCPServerConnect(AThread: TIdPeerThread);begin LbLog.Items.Add('来自主机 ' + AThread.Connection.Socket.Binding.PeerIP + ' 的连接请求已被接纳!');end;但是我却收不到GPRS模块传来的数据信息(代码如下):procedure TFormMain.IdTCPServerExecute(AThread: TIdPeerThread);var sCommand: string;begin with AThread.Connection do begin sCommand := ReadLn(); FLogEntry := sCommand + ' 来自于主机 ' + AThread.Connection.Socket.Binding.PeerIP; {这里没有显示出来} AThread.Synchronize(AddLogEntry); if AnsiStartsText('DATA ', sCommand) then begin FReceived := RightStr(sCommand, Length(sCommand)-5); AThread.Synchronize(DisplayData); FLogEntry := '数据接收成功!' + #13 + sCommand; {这里没有显示出来} AThread.Synchronize(AddLogEntry); end else if SameText(sCommand, 'QUIT') then begin FLogEntry := '断开同主机 ' + AThread.Connection.Socket.Binding.PeerIP + ' 的连接!'; {这里没有显示出来} AThread.Synchronize(AddLogEntry); Disconnect; end else begin FLogEntry := '无法识别命令:' + sCommand; {这里没有显示出来} AThread.Synchronize(AddLogEntry); end;//endif end; end;//-------------------------------------------------------------------其中AddLogEntry方法是把FLogEntry写入到TListBox中。这样我可以看到相关通讯信息。请大虾们指教!!! sCommand := CurrentReadBuffer; 谢谢qi7(奇奇号巡洋舰),已经能收到数据了。也谢谢vinsonshen(hoho)帮我顶:) MaskEdit输入后如何自动响应? 串口通信MSCOMM控件和SPCOMM控件,用哪一个更好? 菜问一个关于ComboBox的问题 关于DateTimePicker ADO的小问题,解决马上在线结贴!!1 请问大虾,Delphi中取余函数是什么,这类函数在那个单元中? 200分!到底用哪一种数据库? 关于打印的简单问题,马上结贴 那里有devexpress空件下载(delphi6.0) 高分请教:为什么串口总是说I/O悬而未决? 关于GPRS的问题,从来没做过,特来请教! 如何调用C++写的动态链接库.dll
由于本人英语水平很一般,所以一看到英文的文章就头疼,所以掌握的东西比较少,不过我还会努力学习,并且还请大家多多指教。我现在使用IdTCPServer控件,已经能收到GRPS模块传来的连接信息(代码如下):
procedure TFormMain.IdTCPServerConnect(AThread: TIdPeerThread);
begin
LbLog.Items.Add('来自主机 ' + AThread.Connection.Socket.Binding.PeerIP +
' 的连接请求已被接纳!');
end;
但是我却收不到GPRS模块传来的数据信息(代码如下):
procedure TFormMain.IdTCPServerExecute(AThread: TIdPeerThread);
var
sCommand: string;
begin
with AThread.Connection do
begin
sCommand := ReadLn();
FLogEntry := sCommand + ' 来自于主机 ' + AThread.Connection.Socket.Binding.PeerIP; {这里没有显示出来}
AThread.Synchronize(AddLogEntry);
if AnsiStartsText('DATA ', sCommand) then
begin
FReceived := RightStr(sCommand, Length(sCommand)-5);
AThread.Synchronize(DisplayData);
FLogEntry := '数据接收成功!' + #13 + sCommand; {这里没有显示出来}
AThread.Synchronize(AddLogEntry);
end
else if SameText(sCommand, 'QUIT') then begin
FLogEntry := '断开同主机 ' + AThread.Connection.Socket.Binding.PeerIP
+ ' 的连接!'; {这里没有显示出来}
AThread.Synchronize(AddLogEntry);
Disconnect;
end
else begin
FLogEntry := '无法识别命令:' + sCommand; {这里没有显示出来}
AThread.Synchronize(AddLogEntry);
end;//endif
end;
end;
//-------------------------------------------------------------------
其中AddLogEntry方法是把FLogEntry写入到TListBox中。这样我可以看到相关通讯信息。
请大虾们指教!!!
也谢谢vinsonshen(hoho)帮我顶:)