在写一个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;
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;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货