帮忙看一下 winsock API 问题

graycarl 2001-10-08 06:51:46
就是这个函数
调用前cSocket已经初始化而且连接完毕
但是对方接受的数据总是乱码(用TCustomwinsocket的recvText方法)
好像即使参数相同的多次调用 每次接受的数据也都不一样
真实奇怪至极,奇怪至极 请大家帮忙看看
分 还是可以加的

function Tform1.socketSend(msg:String):integer;
var
ok:integer;
len:integer;
sBuff:pChar;
begin
len:=Length(msg);
sBuff:=StrAlloc(len+1);
//sBuff:=PChar(msg);
ok:=send(cSocket,sBuff,len,0);
StrDispose(sBuff);
if ok=SOCKET_ERROR then
begin
Application.MessageBox('send fail!','socketRead()',MB_OK);
socketSend:=ok;
exit;
end;
//inttostr(ok)+'bytes sent . len='+inttostr(len)
socketSend:=ok;
end;
...全文
69 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
graycarl 2001-10-08
  • 打赏
  • 举报
回复
display只是用来调试的一个自编函数
graycarl 2001-10-08
  • 打赏
  • 举报
回复
多谢提醒 但这是不小心写错了
源程序是这样的:
function Tform1.socketSend(msg:String):integer;
var
ok:integer;
len:integer;
sBuff:pChar;
begin
len:=Length(msg);
sBuff:=StrAlloc(len+1);
strPcopy(sBuff,msg);
ok:=send(cSocket,sBuff,len,0);
display(sBuff);
StrDispose(sBuff);
if ok=SOCKET_ERROR then
begin
Application.MessageBox('data send fail!','socketRead()',MB_OK);
socketSend:=0;
exit;
end;
display(inttostr(ok)+'bytes sent . len='+inttostr(len));
socketSend:=ok;
end;
情况还如上所说 望各大虾再帮忙 呵呵
NowCan 2001-10-08
  • 打赏
  • 举报
回复
你好像没给sBuff赋值啊。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧