Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Winsock problem....

[es] :: C/C++ programiranje :: Winsock problem....

[ Pregleda: 2853 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

wipeout
Renato Jovic
Split

Član broj: 70705
Poruke: 9
*.cmu.carnet.hr.



Profil

icon Winsock problem....11.10.2005. u 15:45 - pre 225 meseci
Imam problem u mreznom programiranju pomocu winsock-a,u jeziku C,koristeci Visual C++ 6.0 ...
Program mi se uredno kompajlira s 0 gresaka i 0 upozorenja... Takoder sam povezao pomocu linkera datoteku Ws2_32.lib....
Program se uspjesno starta,ali vec kod WSAStartup inicijalizacije dode do greske....WSAGetLatError mi vraca 0....I naravno program se prekida...Ne znam uopce u cemu je problem..Sto se tice mreznog programiranja totalni sam pocetnik......

TestWinSock.cpp
---------------------------

Code:

#include <winsock2.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>

#define DEST_IP "127.00.000.01"
#define DEST_PORT 4444

int main()
{
WSADATA wsaData;

if(!WSAStartup(MAKEWORD(1, 1) , &wsaData))
{
printf("WSAStarturp pokretanje prekinuto! Doslo je do greske broj # %d! Izlazim .\n",WSAGetLastError());
exit(1);
}


int sockfd;
struct sockaddr_in dest_addr;

sockfd = socket(AF_INET, SOCK_STREAM, 0);

dest_addr.sin_family = AF_INET;
dest_addr.sin_port = htons(DEST_PORT);
dest_addr.sin_addr.s_addr = inet_addr(DEST_IP);

memset(&(dest_addr.sin_zero), '\0', 8);

if(connect(sockfd, (struct sockaddr *)&dest_addr, sizeof(struct sockaddr)) == -1)
printf("Doslo je do greske,nisam se spojio!\n");
else
printf("Uspjesno sam se spojio! Valjda :)a \n");


getch();

closesocket(sockfd);
WSACleanup();

getch();

return 0;
}

Kako glasi kletva kompjuterasa? Dabogda ti zena bila open source!
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.dyn.optonline.net.



+6 Profil

icon Re: Winsock problem....11.10.2005. u 17:13 - pre 225 meseci
http://msdn.microsoft.com/libr...nsock/winsock/wsastartup_2.asp

"The WSAStartup function returns zero if successful."
 
Odgovor na temu

wipeout
Renato Jovic
Split

Član broj: 70705
Poruke: 9
*.cmu.carnet.hr.



Profil

icon Re: Winsock problem....11.10.2005. u 19:41 - pre 225 meseci
otkrio sam problem....i to veoma banalan problem...i pocetnik ne bi napravio ovakvu gresku...

if(!WSAStartup(MAKEWORD(1, 1) , &wsaData))

WSAStartup() vraca 0 ako je sve proslo u redu...ali moj "famozni" kod provjerava
da li je WSAStartup(MAKEWORD(1, 1) , &wsaData) == 0.ako da prekini program ...kako amaterski :)

Uvijek sam mijesao if(!izraz) i if(izraz)

Hvala "Dragi Tata"...


[Ovu poruku je menjao wipeout dana 11.10.2005. u 20:42 GMT+1]
Kako glasi kletva kompjuterasa? Dabogda ti zena bila open source!
 
Odgovor na temu

wipeout
Renato Jovic
Split

Član broj: 70705
Poruke: 9
*.cmu.carnet.hr.



Profil

icon Re: Winsock problem....11.10.2005. u 20:05 - pre 225 meseci
opet nailazim na problem koji ne znam samostalno rjesit..mozda i znam,ali vjerujem da je ovo puno brzi nacin...naime sada imam problema sa connect() funkcijom.....jednostavno nece mi da se spoji na zadanu adresu(u oom slucaju na lokalno racunalo)..dolje se nalazi kod,pa ako itko ima kakav prijedlog ,zahvaljujem unaprijed :)

TestWinSock.cpp
----------------------------

Code:
 
#include <winsock2.h>
#include <stdio.h>
#include <conio.h>


#define DEST_IP "127.0.0.1"
#define DEST_PORT  27015

int main()
{
    WSADATA wsaData;

     
    if(WSAStartup(MAKEWORD(2, 2) , &wsaData))
    {
        printf("WSAStarturp pokretanje prekinuto! Izlazim .\n");
        exit(1);
    }

    
    int sockfd;
    
    sockfd = socket(AF_INET, SOCK_STREAM, 0);

    if(sockfd == INVALID_SOCKET)
    {
        printf("Socket() pokretanje prekinuto! Doslo je do greske broj # %d! Izlazim .\n",WSAGetLastError());
        exit(1);
    }

    struct sockaddr_in dest_addr;

    dest_addr.sin_family = AF_INET;
    dest_addr.sin_port = htons(DEST_PORT);
    dest_addr.sin_addr.s_addr = inet_addr(DEST_IP);

    memset(&(dest_addr.sin_zero), '\0', 8);

    if(connect(sockfd, (SOCKADDR *)&dest_addr, sizeof(dest_addr)) == SOCKET_ERROR)
        printf("Doslo je do greske,nisam se spojio!\n");
    else
        printf("Uspjesno sam se spojio! Valjda :)a \n");
    


    closesocket(sockfd);
    WSACleanup();

    getch();

 return 0;
}

Kako glasi kletva kompjuterasa? Dabogda ti zena bila open source!
 
Odgovor na temu

srdjandakic

Član broj: 11297
Poruke: 430
*.sbb.co.yu.



+14 Profil

icon Re: Winsock problem....11.10.2005. u 21:30 - pre 225 meseci
Hm... postoji li kod tebe program koji sluša konekcije na 127.0.0.1:27015 ?
 
Odgovor na temu

Buffy
Stanko Culaja
Sipovo, BiH

Član broj: 45310
Poruke: 312
*.teol.net.



Profil

icon Re: Winsock problem....11.10.2005. u 21:32 - pre 225 meseci
Zasto ne koristis standardni izlaz za greske.
Code:

#include <errno.h>
...
if (connect(...)==-1) perror("connect()");

Koristi perror pa javi koja je greska odstampana.
Jesi li siguran da si postavio server :)

 
Odgovor na temu

wipeout
Renato Jovic
Split

Član broj: 70705
Poruke: 9
*.cmu.carnet.hr.



Profil

icon Re: Winsock problem....12.10.2005. u 16:23 - pre 225 meseci
Rjesio sam "problem"...Greska je bila u tome sto mi je IP adresa servera bila 127.0.0.01
dok se gornji kod pokusavao spojiti na 127.0.0.1...opet jedna velka glupost...s moje strane :)
Ali cudno je da perror() vraca na connect()-u No Error! ...sada ili perror() ne hvaca greske iz winsock funkcija ili nesto sasvim drugo....
Hvala svima...
Cut cemo se opet,cim naidem na sljedecu "nepremostivu" gresku....
Kako glasi kletva kompjuterasa? Dabogda ti zena bila open source!
 
Odgovor na temu

nikoladsp
nikola radovanovic
trenutno-developer
novi sad

Član broj: 5455
Poruke: 193
*.leased.neobee.net.



Profil

icon Re: Winsock problem....12.10.2005. u 16:59 - pre 225 meseci
otidi prijatelju na sledeci link:

[url]http://www.adp-gmbh.ch/win/misc/sockets.html#download [/url]

covek je "umoto" socket-e u klase,krajnje se jednostavno koriste a imas i par primera.zasto da se mucis kad ne moras?(osim ako ne zelis)

pozdrav iz novog sada

nikola
ja sam panker sa diplomom kod moje mame...
 
Odgovor na temu

wipeout
Renato Jovic
Split

Član broj: 70705
Poruke: 9
*.cmu.carnet.hr.



Profil

icon Re: Winsock problem....13.10.2005. u 16:04 - pre 225 meseci
hvala na linku...ali isto bi se ja malo mucio...
sada kada sam pokrenuo program on radi ,ali samo na lokalnom racunalu (127.0.0.1)...cim prebacim na drugi komp javlja mi connect() greska...to jest klijent se ne moze spojiti na server

Dao sam prijatelju da starta server..naravno prije toga sam podesio njegovu IP adresu..( u klijentu i serveru)...i server se startao bez problema...cekao je na konekciju(ali nije docekao :)

Naime kada se pokusavam spojiti klijentom on mi vrati connect() gresku...
Sada ne znam teoriju spajanja...da li klijent kada se spaja na server prvo odlazi do internet providera pa tek zatim na prijateljevo racunalo ili klijent ide direkt na server...Jer ako je prvo,mozda inter. provider ne dopusta spajanja na drugo racunalo ....
Ima li tko kakav prijedlog ili rijesenje???

Hvala svima unaprijed!
Kako glasi kletva kompjuterasa? Dabogda ti zena bila open source!
 
Odgovor na temu

nikoladsp
nikola radovanovic
trenutno-developer
novi sad

Član broj: 5455
Poruke: 193
*.leased.neobee.net.



Profil

icon Re: Winsock problem....13.10.2005. u 17:26 - pre 225 meseci
hint 1:ako ides preko provajdera,svaki put kada se konektujes imas drugu ip adresu( tvoj frend takodje)
hint 2:firewall postoji negde izmedju vas pa ne mozes da se nakacis na port.(probaj sa portom 7-to je echo port ili neki "poveci port",npr 30000 )
hint 3:ako mozes, najbolje ti donesi frendov komp kod sebe pa ih umrezi:jedan 192.168.0.1, drugi 192.168.0.2 i vozi.cak ces moci i da debagujes sa obe strane.

i jos jedan prijateljski savet:
imas i dobar tutorijal na malom broju strana,vrlo je sazet ali ima sve sto ti je potrebno:
http://beej.us/guide/bgnet/
mozes naci i link na hrvatski prevod(ali pazi,ja sam na tom linku sto drzi na hrvatskom prevod pokupio virus jednom prilikom)
ja sam panker sa diplomom kod moje mame...
 
Odgovor na temu

[es] :: C/C++ programiranje :: Winsock problem....

[ Pregleda: 2853 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.