String -> Struct SockAddr
-
Original erstellt von Shade Of Mine:
**garnicht!aber ist dir schonmal aufgefallen, dass sockaddr einen member der form
char sa_data[14];
hat?**Ehrlich gesagt weiss ich weder davon noch hab ich eine Ahnung was du mir damit jetzt sagen willst... krieg' ich ein beispiel?
[ Dieser Beitrag wurde am 15.12.2002 um 16:33 Uhr von systemerror editiert. ]
-
google? msdn?
-
Ich vermute mal, der Compiler meckert bei dir irgendwo so in der Art: "cannot convert string to sockaddr* ". Wenn ja poste mal den Code und wir geben dir die Lösung
-
Hier ist der Code:
string ip; SOCKET Socket; SOCKADDR_IN addr; addr.sin_family=AF_INET; addr.sin_port=htons(PORT); ip="127.0.0.1"; Socket=socket(AF_INET,SOCK_STREAM,0); connect(Socket,[?],[?]); //was kommt da hin
-
RTFM
hat aber nichts mit C++ zu tun
-
Original erstellt von kingruedi:
**RTFMhttp://www.openbsd.org/cgi-bin/man.cgi?query=connect&apr opos=0&sektion=2&manpath=OpenBSD+Current&arch=i386&format=html
hat aber nichts mit C++ zu tun**
Hmm... ich seh da ehrlich gesagt keine Lösung für mein problem sondern nur eine Beschreibung von connect()...
-
@systemerror
Windows, Linux oder was anderes?
-
Original erstellt von HumeSikkins:
@systemerror
Windows, Linux oder was anderes?Hab MSVC++ und Win...
-
Original erstellt von systemerror:
Hab MSVC++ und Win...dann ab nach WinAPI...
-
Original erstellt von Lars:
dann ab nach WinAPI...*schnüff*
Könnt ihr mir nicht einfach sagen wie das geht?
-
du hast einen string vom typ string und brauchst aber einen string vom Typ char[]
umwandeln kannst du mit der methode c_str() von string.zum connect: ich hab das mal (vor langer zeit) so gemacht:
struct sockaddr_in address; // TCP/IP Adresse für SOCKET Anwendungen struct in_addr inaddr; // 32-bit IPv4 Adresse (Einlese-Struktur) SOCKET sock; // SOCKET-handle WSADATA wsadata; // SystemInformationen über SOCKETs /*...*/ address.sin_family = AF_INET; // TCP/IP Verbindung address.sin_port = htons(4711); // Portnummer inaddr.S_un.S_addr = inet_addr("127.0.0.1");// IP von String --> long address.sin_addr = inaddr; // IP-Adresse d. Servers connect(sock, (struct sockaddr *) & address, sizeof (address))
sorry ist ziemlich zusammengestöpselter code, bitte nicht alles für bare münze nehmen, aber so ungefähr ist's schon fürn anfang nicht schlecht
[edit]
ganz ohne gewähr, sollte als ein deinstring ip = "127.0.0.1";
so zu konvertieren gehen:
inaddr.S_un.S_addr = inet_addr(ip.c_str());
ist jetzt aber scho ziemlich quick & dirty
[/edit][ Dieser Beitrag wurde am 16.12.2002 um 15:40 Uhr von flosko editiert. ]