Lỗi này là lỗi gì vậy mấy bác ??

em đang học sử dụng winsock trong Delphi (vẫn còn gà delphi lém, thấy cái này hay hay nên zô học thử), cái trong hình là ct tạo một sever đơn giản , gán 1 socket vào 1 cổng mà mình nhập vào khi ct chạy .Không bik sao mà dùng cổng nào nó cũng báo lỗi đó . Debug một hồi thì phát hiện lỗi xảy ra khi ct thực thi hàm BIND() .Mấy bác biết cái ct của em bị lỗi gì không ? Có cách nào khắc phục được không hay là phải viết lại ct :wacko:?:down:
Còn đây la toàn bộ code chương trình :
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,winsock;

type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Button2: TButton;
ListBox1: TListBox;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
s:^string;
p:string;
sock,sock2:Tsocket;
inp1:Tsockaddr;
DATA:WSAData;
k,t:integer;
inp2[IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]SOCKADDR;
ac[IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Visible:=TRUE;
Listbox1.Visible:=TRUE;
k:=WSAStartup(makeword(2,2),unit1.DATA);
if(k <> 0) then Form1.Label1.Caption:='error in starting Winsock';
sock:=socket(AF_INET,SOCK_STREAM,0);
sock2:=socket(AF_INET,SOCK_STREAM,0);
if(k <> 0) then Form1.Label1.Caption:='error in creating socket';
inp1.sin_family:=AF_INET;
val(edit1.Text,k,t);
inp1.sin_port:=htons(k);
inp1.sin_addr.S_addr:=htonl(INADDR_ANY);
s^:='your sever has started , waiting for a connection from client';
Listbox1.AddItem(s^,Listbox1);
k:=bind(sock,inp1,sizeof(inp1));
if(k <> 0) then Form1.Label1.Caption:='error in set port for socket';
new(s);
k:=listen(sock,5);
if(k <> 0) then Begin
s^:='a client is connecting';
Listbox1.AddItem(s^,Listbox1);
End;
sock2:=accept(sock,inp2,ac);
s^:='infomation of client:';
Listbox1.AddItem(s^,Listbox1);
s^:=inp2.sin_addr.S_un_b.s_b1;
Listbox1.AddItem(s^,Listbox1);
s^:=inp2.sin_addr.S_un_b.s_b2;
Listbox1.AddItem(s^,Listbox1);
s^:=inp2.sin_addr.S_un_b.s_b3;
Listbox1.AddItem(s^,Listbox1);
s^:=inp2.sin_addr.S_un_b.s_b4;
Listbox1.AddItem(s^,Listbox1);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
k:=shutdown(sock,1);
if(k <> 0) then Form1.Label1.Caption:='error in shutdown 1';
t:=shutdown(sock2,1);
if(t <> 0) then Form1.Label1.Caption:='error in shutdown 2';
k:=closesocket(sock);
if(t <> 0) then Form1.Label1.Caption:='error in close 1';
t:=closesocket(sock2);
if(t <> 0) then Form1.Label1.Caption:='error in close 2';
end;

end.