代码如下:
procedure TFrm_Main.Btn_SendClick(Sender: TObject);
begin
GetMem(SendBuf, 1024);
ZeroMemory(SendBuf, 1024);
info := Edit_User.Text; //要发送的信息
StrPCopy(SendBuf, Info);
Re := Send(MySocket, SendBuf^, Length(SendBuf), 0);
if Re = SOCKET_ERROR then
begin
Memo_Info.Lines.Add('发送数据失败!'); exit;
end
else
begin
Memo_Info.Lines.Add('发送数据成功!');
end;
GetMem(RecvBuf, 1024);
ZeroMemory(RecvBuf, 1024);
Re := Recv(MySocket, RecvBuf^, 1024, 0);
Info := StrPas(RecvBuf);
Edit_Receive.Text := Info; //接收的信息为空
Memo_Info.Lines.Add(Info);
Memo_Info.Lines.Add('结束');
FreeMem(SendBuf);
FreeMem(RecvBuf);
CloseSocket(MySocket);
end;//这是为什么??
谢谢了
procedure TFrm_Main.Btn_SendClick(Sender: TObject);
begin
GetMem(SendBuf, 1024);
ZeroMemory(SendBuf, 1024);
info := Edit_User.Text; //要发送的信息
StrPCopy(SendBuf, Info);
Re := Send(MySocket, SendBuf^, Length(SendBuf), 0);
if Re = SOCKET_ERROR then
begin
Memo_Info.Lines.Add('发送数据失败!'); exit;
end
else
begin
Memo_Info.Lines.Add('发送数据成功!');
end;
GetMem(RecvBuf, 1024);
ZeroMemory(RecvBuf, 1024);
Re := Recv(MySocket, RecvBuf^, 1024, 0);
Info := StrPas(RecvBuf);
Edit_Receive.Text := Info; //接收的信息为空
Memo_Info.Lines.Add(Info);
Memo_Info.Lines.Add('结束');
FreeMem(SendBuf);
FreeMem(RecvBuf);
CloseSocket(MySocket);
end;//这是为什么??
谢谢了
代码和书上的都一样,就是接收不到数据
Recv(MySocket,RecvBuf^,1024,0)->Recv(MySocket,RecvBuf,1024,0)
再试试看!按说应该没有问题的!
const char FAR * buf,
int len,
int flags
);
看定义啊,是指针:同意sundytu(晶晶)