socket 求助.
我在运行的时候只要一单击button1就会死机,请各位帮忙看看是怎么回事,哪里出错了?该怎么解决?
procedure TForm1.FormCreate(Sender: TObject);
var
WSAData:TWSAData;
begin
//init the version of the windows socket
if(WSAStartup(MAKEWORD(2,0),WSAData)<>0)then
showmessage('Error at WSAStartup().')
else
showmessage('WSAStartup() is success.');
//-------------------------------------------------------------
//create a socket--gameServerSocket
gameServerSocket:=socket(AF_INET,SOcK_STREAM,IPPROTO_TCP);
if gameServerSocket=INVALID_SOCKET then
begin
showmessage('Error at socket()'+IntToStr(WSAGetLastError()));
end;
//-------------------------------------------------------------
//bind the socket
serverAddr.sin_family:=AF_INET;
serverAddr.sin_addr.S_addr:=INADDR_ANY;//inet_addr('127.0.0.1');
serverAddr.sin_port:=4040;
bind(gameServerSocket,serverAddr,sizeof(serverAddr));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//----------------------------------------------
//listen for the connection requests
listen(gameServerSocket,1);
//----------------------------------------------
//create a sockt for accept
StatusBar1.SimpleText:='Waiting for client to connect......';
//----------------------------------------------
//accept then connection
while true do
begin
acceptSocket:=SOCKET_ERROR;
while acceptSocket=SOCKET_ERROR do
begin
acceptSocket:=accept(gameServerSocket,nil,nil);
end;
StatusBar1.SimpleText:='Client connected.';
gameServerSocket:=acceptSocket;
break;
end;
end;
我在运行的时候只要一单击button1就会死机,请各位帮忙看看是怎么回事,哪里出错了?该怎么解决?