![]() |
|
#1
|
||||
|
||||
![]() Начал разбираться с WinSock, для "самообучения" решил написать простой сервер...
Код:
program Server; {$APPTYPE CONSOLE} uses Windows, WinSock; var WSAData: TWSAData; s,clnt: TSocket; inaddr,addrfrom: sockaddr_in; Terminated:boolean; len:integer; function IntToStr(i:integer):string; var s:string; begin str(i,s); Result:=s; end; begin writeln('running...'); if WSAStartup($101,WSAData)<>0 then begin writeln('Error WSAStartup '+IntToStr(WSAGetLastError())); end; writeln('started...'); s:=socket(AF_INET,SOCK_STREAM,0); if s<0 then begin writeln('Error socket '+IntToStr(WSAGetLastError())); end; writeln('sock init...'); inaddr.sin_family:=AF_INET; inaddr.sin_port:=htons(666); inaddr.sin_addr.S_addr:=INADDR_ANY; if bind(s,inaddr,sizeof(inaddr))>0 then begin writeln('Error bind '+IntToStr(WSAGetLastError())); end; writeln('binded...'); if listen(s,SOMAXCONN)>0 then begin writeln('Error listen '+IntToStr(WSAGetLastError())); end; writeln('Listening port 666...'); Terminated:=false; while not Terminated do begin clnt:=accept(s,@addrfrom,@len); writeln('connected '+IntToStr(clnt)); //<=== end; writeln('sock close...'); closesocket(s); writeln('cleanup...'); WSACleanUp; writeln('terminated...'); sleep(10000); end. Где у меня ошибка? (Только не говорите "в ДНК", ламерами все были в той или иной области, все учатся ![]() Яндекс юзал, нашёл статью "Игры на WinSock", по Сишным примерам понял основное, НО... Кстати, какую инфу посоветуете почитать? Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj Последний раз редактировалось PhoeniX, 19.08.2009 в 10:02. |