一个小问题大家能帮帮我吗?sendbuf()为什么只能发第一个字(100分)

  • 主题发起人 主题发起人 laijf
  • 开始时间 开始时间
L

laijf

Unregistered / Unconfirmed
GUEST, unregistred user!
对方接受已经没有问题,但为什么对方只能收到一个‘A’后面的'BCD'跑那去了?这是怎么
回事,希望大家能帮助小弟。
procedure TfrmMain.Button2Click(Sender: TObject);
var
s:pchar;
inf:string;
begin
s:=nil;
inf:='abcd';
getmem(s,4);
strcopy(s,inf);
try
client.Socket.SendBuf(s^,4);
memo1.Lines.Add(s^);
finally
freemem(s);
end;
end;
 
搞那么复杂干吗?

procedure TForm1.Button1Click(Sender: TObject);
var
inf:string;
begin
inf:='abcd';
try
client.Socket.SendBuf(inf,length(inf));
memo1.Lines.Add(inf);
finally
end;
end;
 
我这样提问是有原因的
比方说我前面用上
type s=record
a:=integer;
s:=string;
end;
用你的方法就行不通了
 
var
s:pointer;
inf:string;
begin
s:=nil;
inf:='abcd';
getmem(s,4);
strcopy(s,PChar(inf));
try
ClientSocket1.Socket.SendBuf(s^,4);
memo1.Lines.Add(String(s));
finally
freemem(s);
end;
end;
 
改成
memo1.Lines.Add(s)就行了!;
 
多人接受答案了。
 
这样的东西:
type s=record
a:=integer;
s:=string;
end;
靠这个是不行的:memo1.Lines.Add(String(s));你都认识吗?
在接收端成功了吗?你这是在发送端验证!

 

Similar threads

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