winsock kompilacja na xp, 7 uruchomienie

0

Witam mam pytanie na temat winsocka. Mam skompilowany program (serwer)na windowsie xp i gdy go uruchomię na komputerze z tym systemem to uzytkownik z windowsem 7 bezproblemowo może się z nim połączyć. A teraz odwrotna sytuacja, kiedy kumpel mój uruchamia serwer na windows 7, to ja próbując się połączyć do niego poprzez windows XP dostaje komunikat, ze serwer po prostu nie zostal uruchomiony (timeout po 30s). Nasze zapory zostały powyłączane, a problem nadal istnieje. Oboje mamy po odblokowywane wszystkie porty. Czy istnieje miedzy tymi systemami jakas roznica (chodzi o serwer). Gdybym skompilowal ten program na windowsie 7 to problemy z polaczeniem by zaniknely? Prosze o wyjasnienie.

0

Może być sporo powodów. Np. brak uprawnień.

0

Myśle, że nie bo np. kumpel stawial serwer do roznych gier multiplayer i moglem sie z nim laczyc.

0

No to jak mamy tak sobie gdybać to lepiej wyjdziesz jak zadzwonisz po poradę do Wróżbity Macieja.

0

Ciężko coś więcej powiedzieć nie mając szczegółów. Sprawdzałeś to:

  1. uruchomić klienta i serwer na tej samej maszynie z windows 7 - eliminujemy potencjalny problem z wzajemną widocznością obu maszyn
  2. dodanie obsługi wszelkich błędów komunikacji w serwerze i kliencie i logowanie ich.

Jak napisał już Rev - może to brak uprawnień. Tak czy inaczej zacząłbym od obsługi błędów związanych z gniazdami.

0

Socket po stronie serwera działa jak należy, a gniazdo po stronie klienta odczekuje 30 sekund i wywala blad (SOCKET_ERROR -1) oraz blad WSAGetLastError (WSAETIMEDOUT - 10060). Czyli najbardziej powszechny error. No kurcze, nie wiem co może być tego przyczyną. A wspomniales aby odpalic klient i serwer na w7. Dziala - wiec te podejrzenie odpada. A tak lekko poza temat wyjde, jak zmniejszyc czas oczekiwania na polaczenie zamiast tych 30-stu sekund. Szukalem, znalazlem i.. Używałem setsockopt i select. Żadne z nich nie dziala tak jak chcialbym. Ta druga funkcja blokuje program na tyle sekund ile oczekuje i po uplywie tego czasu wykonuje się dopiero dalszy kod. Wiec mija sie to z celem.

0

spróbuj na win7 uruchomić program z prawami administratora. chociaż prawa admina generalnie nie powinny być do tego potrzebne.
problem zapewne leży gdzieś po stronie sieciowej, np. porty nie są otwarte mimo że wydaje ci się że są.

nie powiedziałeś jak komputery są podłączone: czy to jest lokalna sieć czy Internet? jeśli to drugie to może jedna z maszyn nie ma zewnętrznego IP.

0

Ok wszystko smiga, wychodzi na to, ze port 5000 byl zablokowany u kumpla. A upieral sie ze nie... Dobra dzieki za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0