moedule
29-04-2005, 14:16
hey
ich hab noch nicht viel mit socket programmierung in c/c++ gemacht und wollte das ganze jetzt mal etwas intensivieren
nach etwas suche hab ich dann auch mal eine implemntierung in c++ gefunden, also richtig mit ner socketklasse, ... und eben nicht nur die reine c variante
damit ist es mir möglich strings zu übertragen. damit kann man zwar schon nette sachen machen (webserver ... ) aber für meine zwecke wäre es ganz nett integer zahlen (oder auch double) zu übertragen, um diese nicht über einen string übertragen zu müssen (uneffektiv, aufwendig , ....)
ist sowas eigentlich möglich? denn alle funktionen die ich benutze wollen strings / bzw char arrays
wenn sowas nicht einfach möglich ist, wie übertragt man integer dann am besten?
(das es möglich ist, sehe ich an implemtierungen für CPPvm (implemntierung für paralles rechnen), da kann man gnaze objekte austauschen, also wohl auch integer, aber ist halt doch etwas aufwendig
moe
diese socket klasse hab ich im netz gefunden und einfach mal etwas damit rumgespielt
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <unistd.h>
#include <string>
#include <arpa/inet.h>
class Socket
{
public:
Socket();
virtual ~Socket();
// Server initialization
bool create();
bool bind ( const int port );
bool listen() const;
bool accept ( Socket& ) const;
// Client initialization
bool connect ( const std::string host, const int port );
// Data Transimission
bool send ( const std::string ) const;
int recv ( std::string& ) const;
void set_non_blocking ( const bool );
bool is_valid() const { return m_sock != -1; }
private:
int m_sock;
sockaddr_in m_addr;
};
und hier noch z.B. die implementierung der send-function
bool Socket::send ( const std::string s ) const
{
int status = ::send ( m_sock, s.c_str(), s.size(), MSG_NOSIGNAL );
if ( status == -1 )
{
return false;
}
else
{
return true;
}
}
ich hab noch nicht viel mit socket programmierung in c/c++ gemacht und wollte das ganze jetzt mal etwas intensivieren
nach etwas suche hab ich dann auch mal eine implemntierung in c++ gefunden, also richtig mit ner socketklasse, ... und eben nicht nur die reine c variante
damit ist es mir möglich strings zu übertragen. damit kann man zwar schon nette sachen machen (webserver ... ) aber für meine zwecke wäre es ganz nett integer zahlen (oder auch double) zu übertragen, um diese nicht über einen string übertragen zu müssen (uneffektiv, aufwendig , ....)
ist sowas eigentlich möglich? denn alle funktionen die ich benutze wollen strings / bzw char arrays
wenn sowas nicht einfach möglich ist, wie übertragt man integer dann am besten?
(das es möglich ist, sehe ich an implemtierungen für CPPvm (implemntierung für paralles rechnen), da kann man gnaze objekte austauschen, also wohl auch integer, aber ist halt doch etwas aufwendig
moe
diese socket klasse hab ich im netz gefunden und einfach mal etwas damit rumgespielt
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <unistd.h>
#include <string>
#include <arpa/inet.h>
class Socket
{
public:
Socket();
virtual ~Socket();
// Server initialization
bool create();
bool bind ( const int port );
bool listen() const;
bool accept ( Socket& ) const;
// Client initialization
bool connect ( const std::string host, const int port );
// Data Transimission
bool send ( const std::string ) const;
int recv ( std::string& ) const;
void set_non_blocking ( const bool );
bool is_valid() const { return m_sock != -1; }
private:
int m_sock;
sockaddr_in m_addr;
};
und hier noch z.B. die implementierung der send-function
bool Socket::send ( const std::string s ) const
{
int status = ::send ( m_sock, s.c_str(), s.size(), MSG_NOSIGNAL );
if ( status == -1 )
{
return false;
}
else
{
return true;
}
}