我把代码贴出来吧,你帮忙给看看
/////////////////////////
procedure TForm1.FormCreate(Sender: TObject);
var iErrorCode:integer;
wsd:TWSADATA;
host:sockaddr_in;
Buffer: array [0..63] of char;
HostEnt: PHostEnt;
bopt:integer;
begin
if WSAStartup(MAKEWORD(2,2),wsd)=0 then
begin
MySocket:=socket( AF_INET , SOCK_RAW , IPPROTO_IP );//------------------ipproto_raw
if MySocket<>INVALID_SOCKET then
begin
bopt:=1;
iErrorCode:=setsockopt(MySocket, SOL_SOCKET, SO_RCVTIMEO, @bOpt, sizeof(bOpt));
if iErrorCode<>SOCKET_ERROR then
begin
GetHostName(Buffer, SizeOf(Buffer));
HostEnt:=GetHostByName(Buffer);
if HostEnt <> nil then
begin
showmessage(HostEnt^.h_name);
Host.sin_addr:=in_addr(HostEnt^.h_addr_list);
//Host.sin_addr:=Inet_addr(pchar(FActiveIP[i]));
Host.sin_family:=AF_INET;
Host.sin_port:=htons(7000);
if bind(MySocket, Host, sizeof(Host))<>SOCKET_ERROR then showmessage('网卡绑定成功!!!')
else
begin
showmessage('错误类型:'+IntToStr(WSAGetLastError));
//WSAEADDRNOTAVAIL 10049 Cannot assign requested address.
end;
end;
end
else showmessage('设置网卡属性时失败!!');
end;
end;
end;