| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2345 人关注过本帖
标题:delphixe下socket API失效,该如何解决
只看楼主 加入收藏
ukton11123
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-11-7
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
delphixe下socket API失效,该如何解决
将原delphi7项目升级后,引用了新的Winapi.WinSock,发现UDP的sendto等函数发送数据后,对方无法接受到数据,但函数返回值正常,请教
搜索更多相关主题的帖子: 如何 项目 
2013-11-07 22:26
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:20 
看看

DO IT YOURSELF !
2013-11-08 09:19
ukton11123
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-11-7
收藏
得分:0 
编译都可以通过,我测试了XE3和XE5均可编译成功,但对方全都收不到数据,同样的测试代码delphi7下就可以正常运行,这是为什么呢,请高手赐教
2013-11-08 09:31
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
不好意思  没用过xe3 和xe5

你可以用getlasterror看一下关键函数返回值  看是否调用成功

DO IT YOURSELF !
2013-11-08 09:33
ukton11123
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-11-7
收藏
得分:0 
发送数据函数代码
function TMySocket.SendUDPData(ARemoteIP: string; ARemotePort: Word; var ABuffer;
  ABufferCount: integer): Boolean;
var
  FRemotAddr: TSockAddrIn;
begin
  Result := false;
  try

    FRemotAddr.SIn_Family := AF_INET;
    FRemotAddr.sin_addr.s_addr := inet_addr(pansichar(ARemoteIP));
    FRemotAddr.sin_port := htons(ARemotePort);
    if sendto(FMainSocket, ABuffer, ABufferCount, 0, FRemotAddr, SizeOf(FRemotAddr)) <> ABufferCount then
    begin

      Exit;
    end;
  except
  end;
  inc(SendCount);
  inc(SendSize, ABufferCount);

  Result := true;
end;
2013-11-08 09:35
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
if sendto(FMainSocket, ABuffer, ABufferCount, 0, FRemotAddr, SizeOf(FRemotAddr)) <> ABufferCount then
    begin

      Exit;
    end;
改一下 试试

m:=sendto(FMainSocket, ABuffer, ABufferCount, 0, FRemotAddr, SizeOf(FRemotAddr));
n:=getlasterror();
这里跟踪调试一下 看看n等于多少  百度一下 大概就知道错误在哪里了
初步怀疑这个sendto函数调用失败
if m<> ABufferCount then
    begin

      Exit;
    end;



DO IT YOURSELF !
2013-11-08 09:39
ukton11123
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-11-7
收藏
得分:0 
没有错误,返回0的
2013-11-08 09:47
快速回复:delphixe下socket API失效,该如何解决
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027192 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved