socket BIND失败的原因?

tianxueshan 2006-07-25 02:04:00
在写一个SOCKET原型的时候遇到这个问题。BIND失败。
function TListenThread.InitSocket: BOOL;
var
addr: TSockAddr;
i:integer;
begin
result := False;

FListenSock := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if FListenSock = INVALID_SOCKET then
begin
MessageBox(0, 'Call socket() failed.', 'Error', MB_ICONERROR);
Exit;
end;

addr.sin_family := AF_INET;
addr.sin_port := htons(LISTEN_PORT);
addr.sin_addr.S_addr := htonl(INADDR_ANY);

if bind(FListenSock, @addr, sizeof(SOCKADDR)) = SOCKET_ERROR then ///绑定失败??????????
begin
i:=GetLastError;
MessageBox(0, 'Call bind failed.', 'Error', MB_ICONERROR);
Exit;
end;

if listen(FListenSock, 5) = SOCKET_ERROR then
begin
MessageBox(0, 'Call listen failed.', 'Error', MB_ICONERROR);
Exit;
end;

result := True;
end;
...全文
1076 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianxueshan 2006-08-04
  • 打赏
  • 举报
回复
发现是因为绑定的端口被激活。高手呢?如何解决?
僵哥 2006-07-25
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/bind_2.asp

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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