Kirjoittaja Aihe: c++ socket  (Luettu 2522 kertaa)

peehoopee

  • Käyttäjä
  • Viestejä: 2
    • Profiili
c++ socket
« : 04.11.08 - klo:20.31 »
Eli olis semmonen ongelma etten saa luotua simppeliä sockettia c++:lla, joka yhdistää palvelimelle, lähettää sinne vaikkapa "moi" ja vastaanottaa dataa jossain while loopissa. Olen nyt 3 päivää etsiskellyt tutoriaaleja c++ socketeista joista voisi olla apua aloittelijalle mutta ilman tulosta.. kaikissa lukemissani tutoriaaleissa on liikaa erilaisia ominaisuuksia, ja sen takia koodista on vaikea saada selvää  :(
kun saisin sen yhdistämisen serverille kuntoon niin siitä olisi helppo lähteä rakentamaan ohjelmaa muuten eteenpäin.
Aiemmin olen ohjelmoinut mm. C#, php -kieliä, joilla olen onnistunut luomaan simppelin socketin  ;D

Tässä pätkä aloittamastani ohjelmasta, jonka pitäisi yhdistää irc-serverille :
Koodia: [Valitse]
#include <iostream>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <string>


struct sockaddr_in ip4addr;
struct remotehost;
int sock;
char *server;


int main()
{
server = "irc.quakenet.org";

sock = socket(AF_INET, SOCK_STREAM, 0);
remotehost = gethostbyname(server);

 

ip4addr.sin_family = AF_INET;
ip4addr.sin_port = htons(6667);
ip4addr.sin_addr.s_addr= = remotehost;

//inet_pton(AF_INET, "128.39.2.28", &ip4addr.sin_addr);


bind(sock, (struct sockaddr*)&ip4addr, sizeof (ip4addr));

/*if(connect(s,ip4addr,sizeof(ip4addr))){       

            perror("connet");

            exit(1);

}*/



}

Eli sattuisiko täällä olemaan joku jolla tämä asia on paremmin hallussa ja osaisi auttaa minua... ::)

« Viimeksi muokattu: 05.11.08 - klo:15.19 kirjoittanut peehoopee »

tussari

  • Käyttäjä
  • Viestejä: 34
    • Profiili
Vs: c++ socket
« Vastaus #1 : 08.11.08 - klo:10.21 »
Muutamia huomioita:

Koodia: [Valitse]
//...
#include <stdio.h> // C-kirjastot olisi hyvä C++:ssa includoida tyyliin #include <cstdio> eli c eteen ja .h pois
//...

struct sockaddr_in ip4addr; // myöskään c++:ssa ei struct-sanaa tarvitse käyttää muuta kuin structia määriteltäessä
struct remotehost; // tässä esitellään remotehost-niminen tietue, mutta sitä ei määritellä missään?

// ...

int main()
{
//...
remotehost = gethostbyname(server); // tämän nimistä muuttujaa ei ole esitelty
//...
}

peran

  • Vieras
Vs: c++ socket
« Vastaus #2 : 09.11.08 - klo:17.37 »
Oletkohan tutustunut Weicon socket tutoriaaleihin. Niissä ei kyllä ainakaan mielestäni ole liikaa tauhkaa...
Tosin niidenkin tutustumiseen kannattaa varata aikaa...
http://wiki.mureakuha.com/wiki/Weicon_socket-tutoriaali
http://wiki.mureakuha.com/wiki/Weicon_socket-tutoriaali_osa_2

peehoopee

  • Käyttäjä
  • Viestejä: 2
    • Profiili
Vs: c++ socket
« Vastaus #3 : 09.11.08 - klo:20.39 »
Kiitos kaikille vastauksista.. :D
Luen noi weicon socket tutoriaalit jos ne vaikka auttaisivat :D