проблемы в винсоке

Тема в разделе "WASM.NETWORKS", создана пользователем seiko, 9 ноя 2007.

  1. seiko

    seiko New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    98
    Написал код по установлению соединения между двумя компами в локалке, отправки и пересылки данных на винсоке 2-ом на TCP, но по интересной причине клиент спокойно создал сервак и ждёт коннекта со стороны сервера, отдающего команды, но несмотря на то, что сервер обращаеться по нужному порту и в нужное время, вылетает WSAETIMEDOUTERROR, думал просто глюк, но это повторилось, переписал на UDP, потом юзал сетевые компоненты обоих протоколов - тот же результат, при этом во всех случаях я могу подключиться из коммандной строки к своей проге, а так - нет
    Порасспросил администраторов про прокси, стоит только http, да и зачем сокс в вузе, но это не отменяет того, что есть доверенные приложения и моя прога в их ряд не входит
    Честно говоря не знаю в чём дело, уже почитал indy in depth но ответа там не нашёл
    Все Kerberosовские штучки виндоус не включены
    Я в этом деле человек не очень опытный, поэтому не ожидал таких трудностей
    Не подскажете в чём дело, а то я в тупике
     
  2. explosion

    explosion Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    34
    ничего не понял

    что значит
    с кем он общается? Если клиент ждет коннекта со стороны сервера.

    Короче код клиента в студию (хотя бы подпрограмма которая устанавливает соединение)
     
  3. slow_at_work

    slow_at_work New Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    64
    вполне возиможно наличие соотв. образом настроенных фаерволов на данных компьютерах
    стоит проверить на предмет соответствия IP и портов

    код тоже бы посмотреть
     
  4. seiko

    seiko New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    98
    окей вот код удп проектов (тут правда другая последовательнсть отправки, это наскоряк писал, чтобы проверить)

    код клиента

    Код (Text):
    1. program UDPClient;
    2.  
    3. uses
    4.   windows,
    5.   winsock2;
    6. const
    7. Serv='86.102.1.172';
    8. ////В оригинале здесь был хост, но я в ipconfig посмотрел айпишник на данный
    9. ////момент и чтобы не тратить время аодключался по нему
    10. Var wsd:TWSADATA; s:TSocket; server:TSockAddrIn; {host:Phostent; }
    11. mes:string;
    12. begin
    13. if WSAStartUp(MAKEWORD(2,2),wsd)<>0 then
    14.  begin
    15.   MessageBox(0,'Initialize error','Error',MB_ICONERROR);
    16.   halt;
    17.  end;
    18. mes:='Hi, idiot!!!';
    19. S:=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
    20. If S=INVALID_SOCKET then
    21.  begin
    22.   MessageBox(0,'Socket Error','Error',MB_ICONERROR);
    23.   WSACleanUp;
    24.   halt;
    25.  end;
    26. server.sin_family:=AF_INET;
    27. server.sin_port:=htons(5050);
    28. server.sin_addr.S_addr:=inet_addr(Serv);
    29. {host:=gethostbyname(Serv);
    30. if host=nil then
    31.  begin
    32.   MessageBox(0,'Host Error','Error',MB_ICONERROR);
    33.   WSACleanUp;
    34.   halt;
    35.  end;
    36. copymemory(@server.sin_addr,host.h_addr_list,host.h_length);}
    37. sendto(s,mes,15,0,server,sizeof(server));
    38. end.
    вот сервака

    Код (Text):
    1. program UDPServer;
    2.  
    3. uses
    4.   winsock2,
    5.   windows;
    6.  
    7. function NetThreadProc(lpParam:pointer):dword;
    8. Var Server:Tsocket; localaddr,clientaddr:TSockAddrIn; size:integer;
    9. s:string;
    10. begin
    11. Server:=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
    12. If Server=INVALID_SOCKET then
    13.  begin
    14.   MessageBox(0,'Socket Error','Error',MB_ICONERROR);
    15.   WSACleanUp;
    16.   halt;
    17.  end;
    18. localaddr.sin_addr.S_addr:=htonl(INADDR_ANY);
    19. localaddr.sin_family:=AF_INET;
    20. localaddr.sin_port:=htons(5050);
    21. if bind(Server,@(SockAddr(localaddr)),sizeof(localaddr))=SOCKET_ERROR then
    22.  begin
    23.   MessageBox(0,'Bind Error','Error',MB_ICONERROR);
    24.   WSACleanUp;
    25.   halt;
    26.  end;
    27. MessageBox(0,'Bind OK','Warning',MB_ICONWARNING);
    28. repeat
    29.  Size:=sizeof(clientaddr);
    30.   if recvfrom(Server,s,sizeof(s),0,clientaddr,Size)<>(sizeof(s)-4) then
    31.    MessageBox(0,'Receive Error','Error',MB_ICONERROR)
    32.   else MessageBox(0,PChar(s),'Warning',MB_ICONWARNING);
    33. until false;
    34.  
    35. end;
    36.  
    37. Var wsd:TWSADATA; netThread:THandle; NetThreadId:dword;
    38. begin
    39. if WSAStartUp(MAKEWORD(2,2),wsd)<>0 then
    40.  begin
    41.   MessageBox(0,'Initialize error','Error',MB_ICONERROR);
    42.   halt;
    43.  end;
    44. NetThread:=CreateThread(nil,0,@NetThreadProc,nil,0,NetThreadID);
    45. sleep(infinite);
    46. end.
    Короче с кодом всё нормально вроде, просто корпоративная политика гробит всё

    порты свободные я смотрел net stat -a и они свободны, порты соответсвуют, время работы прог совпадает, сервак точно занимает указанный порт и ждёт соединения,
    позвольте спросить в чём дело, или хотя бы подскажите где это искать
     
  5. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    как бы сделай тцп как и собирался с начала, это делаецо так:
    Код (Text):
    1. program Client;
    2.  
    3. uses
    4.   windows,
    5.   winsock;
    6. const
    7. Serv='127.0.0.1';
    8.  
    9. Var
    10.   wsd:TWSADATA;
    11.   s:TSocket;
    12.   server:TSockAddrIn; {host:Phostent; }
    13.   mes:string;
    14. begin
    15.  if WSAStartUp($101,wsd)<>0 then begin
    16.   MessageBox(0,'Initialize error','Error',MB_ICONERROR);
    17.   halt;
    18.  end;
    19.  mes:='Hi, idiot!!!';
    20.  S:=Socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
    21.  If S=INVALID_SOCKET then begin
    22.   MessageBox(0,'Socket Error','Error',MB_ICONERROR);
    23.   WSACleanUp;
    24.   halt;
    25.  end;
    26.  server.sin_family:=AF_INET;
    27.  server.sin_port:=htons(5050);
    28.  server.sin_addr.S_addr:=inet_addr(Serv);
    29.  connect(s,server,sizeof(server));
    30.  send(s,PCHAR(@mes[1])^,15,0);
    31. end.
    и сервант к нему
    Код (Text):
    1. program cServer;
    2.  
    3. uses
    4.   winsock,
    5.   windows;
    6.  
    7. Var Server,ACpted:Tsocket;
    8.     localaddr,clientaddr:TSockAddrIn;
    9.     size:integer;
    10.     s:string;
    11.     wbuff:array[0..255]of char;
    12.     wsd:TWSADATA; netThread:THandle; NetThreadId:dword;
    13. begin
    14.  if WSAStartUp($101,wsd)<>0 then begin
    15.   MessageBox(0,'Initialize error','Error',MB_ICONERROR);
    16.   halt;
    17.  end;
    18.  
    19.   Server:=Socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
    20.   If Server=INVALID_SOCKET then begin
    21.    MessageBox(0,'Socket Error','Error',MB_ICONERROR);
    22.    WSACleanUp;
    23.    halt;
    24.   end;
    25.   localaddr.sin_addr.S_addr:=htonl(INADDR_ANY);
    26.   localaddr.sin_family:=AF_INET;
    27.   localaddr.sin_port:=htons(5050);
    28.  if bind(Server,localaddr,sizeof(localaddr))=SOCKET_ERROR then begin
    29.   MessageBox(0,'Bind Error','Error',MB_ICONERROR);
    30.   WSACleanUp;
    31.   halt;
    32.  end;
    33.  
    34.   listen(Server, 0);
    35.   if WSAGetLastError<>0 then begin
    36.    //eshe raz tvoia messaga
    37.    exit;
    38.   end;
    39.  
    40.  
    41.   MessageBox(0,'Bind OK','Warning',MB_ICONWARNING);
    42.  
    43.   while true do begin
    44.     ZeroMemory(@wbuff,256);
    45.     ACpted := accept(Server,nil,nil);
    46.     if(ACpted<>INVALID_SOCKET)then begin
    47.       recv(ACpted,pchar(@wbuff[0])^,256,0);
    48.       MessageBox(0,pchar(@wbuff[0]),'ПЫТЫЩ!!!',0);
    49.       ACpted:=0;
    50.       sleep(1);
    51.     end else break;//if not invalid
    52.   end;//while
    53. end.
    вот. это по мотивам твоего сорца, наглядно так выразил.. уверен - поймёшь..
     
  6. seiko

    seiko New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    98
    я более-менее знаю как это делается, если и прокалываюсь, то в деталях
    просто в то время под рукой кода не было этого
    короче, у меня всё тоже самое, только там у меня zeromemory нету и стринги передаю
    только сценаий другой: серер прежде чем биндиться подключается к клиентскому серваку и отсылает ему комманду, а уже потом биндит свой сервер и ждёт ответа от клиента
    Ща скину код, только у мя вопрос почему у тя в listen ноль стоит, то есть типа он никого принимать не будет что ли?

    Вот код клиента
    Код (Text):
    1. program client;
    2.  
    3. uses
    4.   windows,
    5.   winSock2,
    6.   jokes in 'jokes.pas'; ///мой модуль по названию думаю понятно чего
    7.  
    8. const
    9. MaxLength=100;
    10.  
    11. type
    12. MsgString=String[MaxLength];
    13.  
    14. function ClientThread(s:TSocket):integer;
    15. Var RecvBuff,SendBuff:MsgString; ret:integer;
    16. begin
    17. result:=0;
    18. SendBuff:='done';
    19. repeat
    20. ret:=recv(s,RecvBuff,sizeof(RecvBuff),0);
    21. if ret=0 then break
    22. else
    23. If ret=SOCKET_ERROR then
    24.  begin
    25.   MessageBox(0,'Receive Error','Error',MB_ICONERROR);
    26.   dec(result,1);
    27.   break;
    28.  end;
    29. MessageBox(0,'Receive Success','Error',MB_ICONERROR);
    30. if RecvBuff[1]='R' then
    31.  begin
    32.   Run(@Gallutination); ///упрощенная процедура запуска потока
    33.   ret:=send(s,SendBuff,sizeof(SendBuff),0);
    34.   If ret=SOCKET_ERROR then
    35.    begin
    36.     MessageBox(0,'Send Error','Error',MB_ICONERROR);
    37.     dec(result,2);
    38.     break;
    39.    end;
    40.  end
    41. else MessageBox(0,'What the hell was sent there??!!!','Error',MB_ICONERROR);
    42. sleep(50);
    43. until false;
    44. end;
    45.  
    46.  
    47.  
    48.  
    49. function NetThread:integer;
    50. Var Client,Server:TSocket;
    51. ret,Size:integer; serverAddr,clientAddr:sockaddr_in;
    52. Thread:THandle; ThreadId:dword;
    53. Begin
    54. result:=0;
    55. Server:=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
    56. If Server=SOCKET_ERROR then
    57.  begin
    58.   Dec(result,1); ////это я на буущее, чтобы потом знать чё случилось и когда
    59.   MessageBox(0,'Creation server socket error','Error',MB_ICONERROR);
    60.   exit;
    61.  end;
    62. ServerAddr.sin_family:=Af_INET;
    63. ServerAddr.sin_port:=htons(5050);
    64. ServerAddr.sin_addr.S_addr:=htonl(INADDR_ANY);
    65. ret:=bind(Server,@(SockAddr(ServerAddr)),sizeof(ServerAddr));
    66. if ret=SOCKET_ERROR then
    67.  begin
    68.   Dec(result,2);
    69.   MessageBox(0,'Bind error','Error',MB_ICONERROR);
    70.   exit;
    71.  end;
    72. listen(Server,1); ////почемму и тя здесь стоит, и как это тогда работает?
    73. repeat
    74. Size:=sizeof(clientaddr);
    75. Client:=accept(Server,clientaddr,size);
    76. if Client=INVALID_SOCKET then
    77.  begin
    78.   MessageBox(0,'Accept Error','Error',MB_ICONERROR);
    79.   dec(result,3);
    80.   break;
    81.  end;
    82. Thread:=CreateThread(nil,0,@ClientThread,@Client,0,ThreadID);
    83. If thread=0 then
    84.  begin
    85.   MessageBox(0,'Thread Error','Error',MB_ICONERROR);
    86.   dec(result,4);
    87.   break;
    88.  end;
    89. CloseHandle(Thread);
    90. until false;
    91. closeSocket(client);
    92. end;
    93.  
    94. Var wsd:TWSAData; pNetThread:THandle; NetThreadId:dword;
    95. begin
    96. if WSAStartup(Makeword(2,2),wsd)<>0 then
    97. begin
    98.  MessageBox(0,'WSAInitializing Error','Error',MB_ICONERROR);
    99.  halt;
    100. end;
    101. repeat
    102. pNetThread:=CreateThread(nil,0,@NetThread,nil,0,NetThreadId);
    103. sleep(300000);
    104. terminateThread(NetThread,0);
    105. until false;
    106. WSACleanUp;
    107. end.
    вот код главного сервака

    Код (Text):
    1. uses
    2.   windows,
    3.   WinSock2;
    4.  
    5. const
    6. MaxLength=100;
    7. ClientName='86.102.1.172';
    8.  
    9. type
    10. MsgString=String[MaxLength];
    11.  
    12. function ClientThread(lparam:pointer):integer;
    13. Var RecvBuff:MsgString; ret:integer; s:TSocket;
    14. begin
    15. repeat
    16. s:=TSocket(lparam^);
    17. result:=0;
    18. ret:=recv(s,RecvBuff,maxLength,0);
    19. if ret=0 then break
    20. else
    21. if ret=SOCKET_ERROR then
    22.  begin
    23.   dec(result,1);
    24.   break;
    25.  end;
    26. until false;
    27. if recvBuff[1]='d' then
    28. MessageBox(0,'All is OK. Command has received','Error',MB_ICONERROR)
    29. else
    30. MessageBox(0,'What the hell was send there??!!!','Error',MB_ICONERROR);
    31. CloseSocket(s);
    32. end;
    33.  
    34.  
    35.  
    36. function NetThread(localaddr:sockaddr_in):integer;
    37. Var Server,Client:TSocket; Thread:THandle; ThreadId:dword; Size:integer;
    38. clientaddr:TSockAddrIn;
    39. Begin
    40. result:=0;
    41. Server:=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
    42. If server=SOCKET_ERROR then
    43.  begin
    44.   dec(result,1);
    45.   MessageBox(0,'Creation Server Socket Error','Error',MB_ICONERROR);
    46.   exit;
    47.  end;
    48. if bind(Server,@(SockAddr(localaddr)),sizeof(localaddr))=SOCKET_ERROR then
    49.  begin
    50.   dec(result,2);
    51.   MessageBox(0,'Bind Error','Error',MB_ICONERROR);
    52.   exit;
    53.  end;
    54. listen(Server,15);
    55. repeat
    56.  Size:=sizeof(clientaddr);
    57.  client:=accept(Server,SockAddr(clientaddr),Size);
    58.  If Client=INVALID_SOCKET then
    59.   begin
    60.    dec(result,3);
    61.    MessageBox(0,'Accept Error','Error',MB_ICONERROR);
    62.    break;
    63.   end;
    64.  Thread:=CreateThread(nil,0,@ClientThread,@Client,0,ThreadId);
    65.  if Thread=0 then
    66.   begin
    67.    dec(result,4);
    68.    break;
    69.   end;
    70.  CloseHandle(Thread);
    71.  sleep(50);
    72. until false;
    73. closeSocket(Server);
    74. end;
    75.  
    76.  
    77.  
    78.  
    79.  
    80.  
    81. Var wsd:TWSAData; FNetThread:THandle; NetThreadID:dword;
    82. ret1:integer; s:TSocket; buf:Msgstring; {host:Phostent;}
    83. localaddr,clientaddr:sockaddr_in; port:word; st:string;
    84. begin
    85. if WSAStartUp(MAKEWORD(2,2),wsd)<>0
    86.  then halt;
    87. S:=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
    88. If s=SOCKET_ERROR then
    89. begin
    90.  MessageBox(0,'Creation socket error','Error',MB_ICONERROR);
    91.  WSACleanUp;
    92.  halt;
    93. end;
    94. port:=htons(5050);
    95. localaddr.sin_addr.S_addr:=htonl(INADDR_ANY);
    96. localaddr.sin_family:=AF_INET;
    97. localaddr.sin_port:=port;
    98. clientaddr.sin_family:=AF_INET;
    99. clientaddr.sin_port:=port;
    100. clientaddr.sin_addr.S_addr:=inet_addr(ClientName);
    101. {host:=GetHostbyName(ClientName);
    102. if host=nil then
    103.  begin
    104.   MessageBox(0,'Host Error','Error',MB_ICONERROR);
    105.   WSACleanUp;
    106.   halt;
    107.  end;
    108. CopyMemory(@clientaddr.sin_addr,host.h_addr,host.h_length);}
    109. ret1:=connect(s,@(SockAddr(clientaddr)),sizeof(clientaddr));
    110. If ret1=SOCKET_ERROR then
    111. begin
    112.  case WSAGetLastError of
    113.  WSAETIMEDOUT: st:='WSAETIMEDOUT';
    114.  WSAEADDRINUSE: st:='WSAEADDRINUSE';
    115.  WSAEADDRNOTAVAIL: st:='WSAEADDRNOTAVAIL';
    116.  WSAENETDOWN: st:='WSAETIMEDOUT'; ///вот он злостный враг коннекта
    117.  WSAEINTR: st:='WSAEINTR';
    118.  WSAEINPROGRESS : st:='WSAEINPROGRESS';
    119.  WSAEALREADY: st:='WSAEALREADY';
    120.  WSAEAFNOSUPPORT: st:='WSAEAFNOSUPPORT';
    121.  WSAECONNREFUSED: st:='WSAECONNREFUSED';
    122.  WSAEFAULT: st:='WSAEFAULT';
    123.  WSAEINVAL: st:='WSAEINVAL';
    124.  WSAEISCONN : st:='WSAEISCONN';
    125.  WSAENETUNREACH : st:='WSAENETUNREACH';
    126.  WSAENOBUFS : st:='WSAENOBUFS';
    127.  WSAENOTSOCK: st:='WSAENOTSOCK';
    128.  WSAEWOULDBLOCK : st:='WSAEWOULDBLOCK';
    129.  WSAEACCES  : st:='WSAEACCES';
    130.  else st:='UNKNOWN';
    131. ///кстати недавно я ещё и эту ошибку словил, но это уже дома было
    132.  end;
    133.  MessageBox(0,PAnsiChar(st+' error'),'Error',MB_ICONERROR);
    134.  WSACleanUP;
    135.  halt;
    136. end;
    137. buf:='Run';
    138. ret1:=send(s,Buf,sizeof(buf),0);
    139. if ret1=SOCKET_ERROR then
    140. begin
    141.  MessageBox(0,'First Sending Error','Error',MB_ICONERROR);
    142.  WSACleanUP;
    143.  halt;
    144. end;
    145. repeat
    146. FNetThread:=CreateThread(nil,0,@NetThread,@Localaddr,0,NetThreadId);
    147. sleep(300000);
    148. terminateThread(FNetThread,0);
    149. until false;
    150. WSACleanUp;
    151. end.
    жду ваших замечаний и предложений, прошу вас сосредоточиться именно на установлении соединения, остальные некрасивости будут исправлены, как только решится эта проблема
     
  7. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    =||
    я кагбе проверил счас даже, всё работает чудесно.
    тока пщпщ второй параметр в листен это беклог. я его всю жезь нулём ставлю..
    такщо идите курите мсдн.
    сделойте всё как у мну.
    вплоть до
    ВстаСтартуп(БАКС202,...);
    и Socket(PF_INET
     
  8. seiko

    seiko New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    98
    А что касается наличие запрещающих прог, типа файерволлов и соксов, как с ними поступать если я наконец-то удостоверюсь в их наличии?
     
  9. slow_at_work

    slow_at_work New Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    64
    seiko

    PF_INET - обязательно.

    параметр бэклог в функции listen означает максимальную вместимость очереди еще не принятых подключений
    передача заведомо некорректного значения гарантирует то, что будет выбрано ближайшее допустимое значение. можно передавать не 0, а SOMAXCONN например
     
  10. seiko

    seiko New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    98
    ни фига - вылазит таймаут все равно, короче я не знаю уже чё мне делать по ходу сокс стоит здесь

    как всегда написал код перед этим узнал состояние портов net statом после запуска клиента
    узнал о том, что его сервак забиндился успешно и ждёт, вот только к нему никак не может подключиться другой комп, выдаёт таймаут, хотя в реальном времени все в поряде, как всегда подключился из коммандной строки к своему клиенту, жаль, что передать ничё не смог
    Ради эксперимента включил на этих двух компах messenger и успешно обменялся сообщениями с помощью NET SENDа, пробовал искать фаейвол в службах, но ничего не нашёл
    придётся опять выуживать скудную инфу из наших админов, но я боюсь это безнадёжно,
    если я под админом ни хера сделать не могу, то тут уж застреливаться надо


    помогите чем-нить блин, я уже с середины сентября так маюсь, пробуя разные варианты, и никуда не продвинулся.
     
  11. seiko

    seiko New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    98
    есть ли у нода32 или mcAfee встроенные файерволы, которые будучи сервисами могут блокировать подозрительные соединения?
     
  12. ECk

    ECk Member

    Публикаций:
    0
    Регистрация:
    9 апр 2004
    Сообщения:
    454
    Адрес:
    Russia
    у нода есть LSP
     
  13. seiko

    seiko New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    98
    Седня пытался отключить IMON в ноде, вроде отключил, код не менял, но после отключения начались странные глюки, ошибка бинда, да ещё и какая - WSAENOTSOCK - дельфа мне утверждает что, данный дескриптор не является сокетом, хотя переданный до этого в функцию параметр - результат спокойного и без ошибок вызова функции socket
    Целых два странных парадокса, первый - после отключения предполагаемого файервола приложение даже сервер забиндить не может, второй - это то, что функция бинда не признаёт свой нормальный сокет
    И непонятно, в чем проблема

    Каковы будут ваши соображения и что такое LPS?
     
  14. seiko

    seiko New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    98
    повторил те же опыты по коннекту дома, перед этим отключил брандмауэр и каспера на обоих компах
    Дома у меня стоит локалка, по этому же кабелю к моему компу проходит интернет с ADSL модема, суть в чём пробовал на UDP, на TCP, менял местами сервак и клиент: все равно одна шняга - WSAETIMEDOUTERROR.
    Сетевые компоненты как idUDPServer и idUDPClient тупо стесняются сказать об ошибке и зависают нахрен при попытке выполнять функции простейшего чата (пример из Delphi глазами хакера).
    В чём может быть проблема, помогите плиз, я в который раз понимаю, что я ни черта не знаю о сети. Я уже устал от книжек, котрые сулят мне быстрый успех, но вместо этого ничего не работает из-за непонятных ошибок
     
  15. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    WSAETIMEDOUTERROR vot etu ochubku naberi v yandexe i posmotri sto pro nee pisut , poymes de ne verno
     
  16. seiko

    seiko New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    98
    Единственное, что в гулгле выдается если набрать только слово WSAETIMEDOUTERROR выдает только ссылку на мой пост здесь
     
  17. seiko

    seiko New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    98
    Помогите плиз, есть какие-нибудь идеи, я лишь могу добавить, что через коммандную строку прекрасно подключаюсь к своему клиенту
     
  18. seiko

    seiko New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    98
    В TCP и UDP ошибка WSAETIMEDOUT так и переводиться, превышение времени ожидания прихода пакета, но в UDP это в принципе не редкость, то в TCP это означает, что либо не открыт порт назначения, либо пакет потерялся по пути, или не смог подключиться. Но суть в том, что эта ошибка возникает постоянно, какие механизмы слежения и противодействия помимо прокси серверов применяются в локальных сетях, и могут ли они являться причиной?
     
  19. seiko

    seiko New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    98
    может ли быть причиной проблемы сетевая политика компании-поставщика интернета, если по тому же кабелю переносится подключение по интернету от WAN компании?
     
  20. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    да как вариант ... но не единственный