关于socket.receivebuf的问题(100分)

  • 主题发起人 主题发起人 foxnt
  • 开始时间 开始时间
F

foxnt

Unregistered / Unconfirmed
GUEST, unregistred user!
我是这样写的:
var
p : pchar;
c : integer;
begin
c := socket.receivelength;
getmem(p,count);
socket.receivebuf(p^,c);
showmessage(p);
end;
对方是unix的机。定义了一个结构:
有三个变量:a1,b1,c1,字符型。
但是我接收到的却总是c的值。a,b的值
却死活出不来。我查看了socket.receivelength的
值,是正确的(660)。不知为何出不来。
另外,接受1个大于255个字符的值,如何把他显示出来?
如用showmessage.如果有个大于255的字符串,如何发出去?
请高手给些源码吧。我急着要用。
谢了。(叫我去看HELP,是没分的啊!)
 
Type MyRecord=Record
a:char;
b:char;
c:char;
end;

procedure ReceiveData;
var pRecord:^MyRecord;
c:integer;
begin
c := socket.receivelength;
getmem(p,c);
socket.receivebuf(p^,c);
showmessage(p^.a+p^.b+p^.c);
Freemem(p,c);
end;
 
Type MyRecord=Record
a:char;
b:char;
c:char;
end;
是没法收到大于256字符的包的。
我把他该为PCHAR,showmessage就出错。
不知avant您是如何做的?
谢了!
 
<<a1,b1,c1,字符型
怎么会大于256???
 
您倒是说话呀!
 
整段代码帖出来。
 
<<三个变量:a1,b1,c1,字符型
这怎么可能大于256字符?
不好意思,上次没粘好。:-)
 
avant : 谢了。问题好象解决了。
把CHAR 改为:ARRAY [1。。400] OF CHAR
似乎就行了。赶明儿测一下。成功的话就把
分分给您吧。如果还不行,就......:)
 
为什么不用String呢?应该没问题啊。
反正用指针是不行的,Delphi的Socket发送时不会自动通过地址去取真实的值。
 
string 是接不了大于256个字符的数据的。
 
接受答案了.
 
后退
顶部