и еще, если Win32, то вызови при ошибке WSAGetLastError(); посмотри что за код возвращает, думаю так тебе понятней буде найти на каком месте спотыкается
и еще, можно сделать некоторые изменения
> clnt_sin.sin_family = AF_INET; > clnt_sin.sin_addr.s_addr = INADDR_ANY; ^^^^^ тут намого целесообразнее указать локальный адрес
> clnt_sin.sin_port = 4444; ^^^^^^ а тут вообще можно clnt_sin.sin_port = 0; - это же клиентская часть, для него монопенисно к какому порту баундиться.
[C++] connect на ровном месте возвращает 1, кто знает описание ЕЙ05.06.01 17:42 Автор: Delimiter Статус: Незарегистрированный пользователь
> не совсем ровное вообще то. проследи за " ^^^^^^ " > > > client1 = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP); > > memset ((char *)&clnt_sin, '\0',sizeof(clnt_sin)); > > clnt_sin.sin_family = AF_INET; > > clnt_sin.sin_addr.s_addr = INADDR_ANY; > > clnt_sin.sin_port = 4444; > ^^^^^^^^^^ clnt_sin.sin_port = htos(4444); > > int m=bind (client1, (struct sockaddr > > *)&clnt_sin,sizeof(clnt_sin)); > > if(m!=0) > > { > > m_str1+=CString("Result Bind:"); > > m_str1+=CString(itoa(m,mybuf2,10)); > > m_str1+=CString("\r\n"); > > } > > memset ((char *)&srv_sin, '\0',sizeof(srv_sin)); > > srv_sin.sin_family = AF_INET; > > memcpy ((char*)&srv_sin.sin_addr,(char > > *)&ClAddr.sin_addr,4); > ^^^^^^^^^ что за ClAddr.sin_addr? адрес у него правильный ? > не забудь про htol(u_long addr); > > srv_sin.sin_port = 2222; > ^^^^^^^^^ srv_sin.sin_port = htos(2222); > > m=connect (client1,(struct sockaddr *) &srv_sin, > > sizeof(srv_sin)); > > if(m!=0) > > { > > m_str1+=CString("Result Connect:"); > > m_str1+=CString(itoa(m,mybuf2,10)); > > m_str1+=CString("\r\n"); > > } > > и еще, если Win32, то вызови при ошибке WSAGetLastError(); > посмотри что за код возвращает, думаю так тебе понятней > буде найти на каком месте спотыкается > > и еще, можно сделать некоторые изменения > > clnt_sin.sin_family = AF_INET; > > clnt_sin.sin_addr.s_addr = INADDR_ANY; > ^^^^^ тут намого целесообразнее указать локальный адрес > > clnt_sin.sin_port = 4444; > ^^^^^^ а тут вообще можно clnt_sin.sin_port = 0; - это же > клиентская часть, для него монопенисно к какому порту > баундиться.
ооооо позор на мою тупую башку я по несуществующему htos
раз сто глазами проходил....
а тебя kabanchik .... я бы пивом напоил.....
если будешь собиратся на кипр мыльни встречу в Никосии и напьемся :))
Smal1964@yahoo.com
я в С++ временами программю а 12 часов в день в VOS6 & VOS7 Parity
....а.... int WSAGetLastError (void); :)
а во вторых это сервер :)) и этот код внутри обработчика FD_ACCEPT :)
> будете проходить мимо, проходите себе дальше :-))) > > ОК, и тебе спасибо, если буду, дам знать )) > > удачи
теперь все Ок
нашел логическую ошибку :))
bind -нуно делать только один раз хотя и так новому отказывают а первый остается.... ичо раз пасиба
сейчас у меня обе стороны сервера при выключение и последующем включении одной или обеих сторон связь автовостанавливается ...