Chinaunix首页 | 论坛 | 博客
  • 博客访问: 952025
  • 博文数量: 108
  • 博客积分: 3243
  • 博客等级: 中校
  • 技术积分: 964
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-15 22:09
文章分类

全部博文(108)

文章存档

2020年(2)

2019年(1)

2018年(2)

2017年(9)

2016年(20)

2015年(1)

2013年(1)

2012年(12)

2011年(28)

2010年(27)

2009年(4)

2008年(1)

分类:

2010-12-23 15:47:10

在使用Socks编程时,有时需要判断某个端口是否被占用,也就是是否被其它程序使用。
 
uses Winsock;
 
function IsPortUsed(const aPort: Integer): Boolean;
var                       
  _vSock : TSocket;
  _vWSAData : TWSAData;
  _vAddrIn : TSockAddrIn;
begin
  Result := False;
  if WSAStartup(MAKEWORD(2, 2), _vWSAData) = 0 then
  begin
    _vSock := Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    try
      if _vSock <> SOCKET_ERROR then
      begin
        _vAddrIn.sin_family := AF_INET;
        _vAddrIn.sin_addr.S_addr := htonl(INADDR_ANY);
        _vAddrIn.sin_port := htons(APort);
        if Bind(_vSock, _vAddrIn, SizeOf(_vAddrIn)) <> 0 then
          if WSAGetLastError = WSAEADDRINUSE then
            Result := True;
      end;
    finally
      CloseSocket(_vSock);
      WSACleanup();
    end;
  end;
end;
阅读(3423) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-12-26 17:19:19

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com

chinaunix网友2010-12-26 17:19:07

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com