Flength := socket.ReceiveLength;
RecTxt := socket.ReceiveText;
我要得到RecTxt的值,然后根据RecTxt的值判断下面继续执行什么事件(如接收文件和接收信息2个事件)
同时我又要得到Flength的值,因为Flength是接收文件必须要得到的值.但现在是有了Flength := socket.ReceiveLength;之后,再加一句RecTxt := socket.ReceiveText;
Flength这句先写的话,那么这2句都能得到值.
但如果后面正好是继续执行接收文件事件,那么有后面这句就会错误,为什么?请教了----------------------------------------//这是接收文件的事件
sRecv:=copy(RecTxt,1,8); //根据客户端发过来的信息的开始8个字符判断发来的是文件还是信息
if (sRecv='####1111') then
begin
Flength := socket.ReceiveLength; //这里又必须要得到 Flength的值
getmem(resvbuff, Flength);
try
socket.ReceiveBuf(resvbuff^, Flength);
strTemp := strpas(pchar(resvbuff));
charTmp:=strTemp;
strTemp := copy(strTemp, 1, 8);
if strTemp = SF_QUERY then
begin
...
-----------------------------------------//这是接收信息事件
else
begin
RxRichEdit1.Lines.Add(RecTxt);
...
RecTxt := socket.ReceiveText;
我要得到RecTxt的值,然后根据RecTxt的值判断下面继续执行什么事件(如接收文件和接收信息2个事件)
同时我又要得到Flength的值,因为Flength是接收文件必须要得到的值.但现在是有了Flength := socket.ReceiveLength;之后,再加一句RecTxt := socket.ReceiveText;
Flength这句先写的话,那么这2句都能得到值.
但如果后面正好是继续执行接收文件事件,那么有后面这句就会错误,为什么?请教了----------------------------------------//这是接收文件的事件
sRecv:=copy(RecTxt,1,8); //根据客户端发过来的信息的开始8个字符判断发来的是文件还是信息
if (sRecv='####1111') then
begin
Flength := socket.ReceiveLength; //这里又必须要得到 Flength的值
getmem(resvbuff, Flength);
try
socket.ReceiveBuf(resvbuff^, Flength);
strTemp := strpas(pchar(resvbuff));
charTmp:=strTemp;
strTemp := copy(strTemp, 1, 8);
if strTemp = SF_QUERY then
begin
...
-----------------------------------------//这是接收信息事件
else
begin
RxRichEdit1.Lines.Add(RecTxt);
...
解决方案 »
- 求教一个调用DLL的速度问题,很诡异-_-
- 下载了Delphi+SQL仓库信息管理系统不全,高分求库存盘点
- DBGridEh(Delphi7)里如何设置回车自动跳到下一列,而不是跳出网格(设置TAB也可)?
- Delphi工程的路径是在哪里指定?
- 一个奇菜的问题,如何把一个FLOAT型的数变为INT型的数?
- 关于Tstringgrid的行颜色改变的问题??
- 请教高手此中问题应该采用什么方式实现??
- 有关delphi 与c++的问题
- 如何使窗体象qq可以缩进屏幕上端?
- 救急:我到win2000下做的一个软件在win98下不能用,这是怎么回事?
- 跪求智者,本人刚完成一个c/s的项目,用的delphi开发,现想将client通过ocx放入IE中,该如何实现啊
- EXCEL复制粘贴问题
有一个返回值表示实际收到的字节数,请加以判断并处理。
strTemp := strpas(pchar(resvbuff));
RecTxt := strTemp;RecTxt得到的结果的最后面总会跟几个乱码