- 积分
- 216
- 下载币
- 个
- 帖子
- 主题
- 最后登录
- 1970-1-1
- 在线时间
- 小时
- 注册时间
- 2017-6-7
- 好友
- 听众
|
发表于 2017-6-7 09:36:27
|
显示全部楼层
|阅读模式
发布于:河北省唐山市 电信
使用sock打开端口,失败的话就是已经被占用了
Delphi代码如下!
- 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;
复制代码 |
评分
-
1
查看全部评分
-
|