客户端是用linux c写的,现在的问题是客户端能连上服务器,但不能通讯!
我用单步调试时程序运行到A的时候就跳到B了,这是什么原因呢? 请各位朋友指导啊。。 多谢 新年快乐 ^_^ 程序如下:
procedure TMainForm.warn_serverExecute(AThread: TIdPeerThread);
var
Client : TSimpleClient;
revmsg: array[1..2048] of Char; //接收数据包用的零时数组
mcumsg,feedback: string; //mcumsg是收到的数据包, feedback是返回的数据包
msglen :integer; //收到的数据的长度
begin
fillchar(revmsg,sizeof(revmsg),'$');
AThread.Connection.Readbuffer(revmsg,2048); //******** A ********** msglen:= pos('$',revmsg); //
if msglen=0 then
msglen:=2048
else
msglen:=msglen-1; mcumsg:=copy(revmsg,0,msglen); //
memo1.Lines.Add(mcumsg); feedback:=parsemcumsg(mcumsg);
if (feedback<>'err') then //
begin
AThread.Connection.WriteLn(feedback);
end; AThread.Connection.Disconnect; //******** B **********end;
我用单步调试时程序运行到A的时候就跳到B了,这是什么原因呢? 请各位朋友指导啊。。 多谢 新年快乐 ^_^ 程序如下:
procedure TMainForm.warn_serverExecute(AThread: TIdPeerThread);
var
Client : TSimpleClient;
revmsg: array[1..2048] of Char; //接收数据包用的零时数组
mcumsg,feedback: string; //mcumsg是收到的数据包, feedback是返回的数据包
msglen :integer; //收到的数据的长度
begin
fillchar(revmsg,sizeof(revmsg),'$');
AThread.Connection.Readbuffer(revmsg,2048); //******** A ********** msglen:= pos('$',revmsg); //
if msglen=0 then
msglen:=2048
else
msglen:=msglen-1; mcumsg:=copy(revmsg,0,msglen); //
memo1.Lines.Add(mcumsg); feedback:=parsemcumsg(mcumsg);
if (feedback<>'err') then //
begin
AThread.Connection.WriteLn(feedback);
end; AThread.Connection.Disconnect; //******** B **********end;
解决方案 »
- memo显示的问题
- DirectoryListBox目录选择问题
- 如何在listbox1删除listbox2中有的项?
- dbgrideh中如何将小数显示为百分比??
- 如何实现在DBGrid(连接Table1的)中某一列的编辑区连接另外一表Table2的'Name'字段,点击下拉菜单就可实现?
- 新手求救!大侠请出手!!谁给给我发一个delphi+sql server的数据备份和还原的程序,我一次只能给100解决了开贴再给 谢谢
- 第一次用的难题,大侠帮忙。
- 关于label或edit控件的问题
- 如何编程知道当前已使用和剩余的系统资源情况?
- 关于delphi中赋值存在的问题?
- 谁能告诉我 *.CRD Windows Cardfile文件 怎么打开啊
- 用BDE中的TTable联接Paradox数据库时需输入用户名和密码的问题?
我测试过,而且代码不超过100行,建议你换语言,呵呵
有没有可能是主机还没有接收到客户机发的数据包,客户机就把socket连接关闭了? 请指导...