关于Indy TCP server在使用GPRS接入互联网监听遇到的问题~(100分)

  • 主题发起人 主题发起人 soulmate
  • 开始时间 开始时间
S

soulmate

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用GPRS模块要将一些信息发送到互联网上~准备采用Indy Tcp控件,发现一些问题~<br> &nbsp;程序很简单,一个按钮开始监听 &nbsp;~<br> &nbsp;在连接成功后,能正确显示GPRS的IP地址,但是一运行到<br> &nbsp;sCommand:=AThread.Connection.ReadLn();这一句时,好像就死到这里了,一点击DELPHI的停止按钮,他就进入汇编调试模式<br> &nbsp; 不管采用ReadBuffer还是ReadStream等等都会死到这里~<br> &nbsp;我不知道为什么?<br><br> &nbsp;我在本机上试了Indy Tcp自带的Server和client程序,可以运行~<br> &nbsp;是什么原因造成我不能读回我想要的数据呢?<br><br>procedure TForm1.BtnStartClick(Sender: TObject);<br>begin<br> &nbsp; IdTCPServer.DefaultPort := StrToInt(EdtPort.Text);<br> &nbsp; IdTCPServer.Active := True;<br> &nbsp; BtnStart.Enabled := False;<br> &nbsp; BtnStop.Enabled := True;<br> &nbsp; LbLog.Lines.Add('服务器已成功启动!');<br><br>end;<br><br><br><br>procedure TForm1.BtnStopClick(Sender: TObject);<br>begin<br> &nbsp; IdTCPServer.Active := False;<br> &nbsp; BtnStart.Enabled := True;<br> &nbsp; BtnStop.Enabled := False;<br> &nbsp; LbLog.Lines.Add('服务器已成功停止!');<br><br>end;<br><br>procedure TForm1.IdTCPServerConnect(AThread: TIdPeerThread);<br>begin<br> &nbsp; LbLog.Lines.Add('来自主机 '<br> &nbsp; + AThread.Connection.Socket.Binding.PeerIP<br> &nbsp; + ' 的连接请求已被接纳!');<br><br>end;<br><br>procedure TForm1.IdTCPServerExecute(AThread: TIdPeerThread);<br>var<br>sCommand: string;<br>begin<br> &nbsp; sCommand:=AThread.Connection.ReadLn();<br> &nbsp; LbLog.Lines.Add(sCommand);<br><br>end;
 
这个问题自己搞定了~<br>不过怎么样用Indy Server控件发数据呢?<br>Indy 的例子里给的是用Indy Client发数据,我现在想直接用Indy Server发数据?<br>熟悉indy 的朋友帮帮忙啊~
 
自己解决了~^o^
 
又遇到新的问题了,收发数据没有问题了,但是却发现我在关闭GPRS电源时,也就是可以当作客户端主动断开网络,Indy Server没有触发Disconnect事件。<br> &nbsp;没办法检测到客户断断开网络啊~ 郁闷啊~o~
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部