Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Verbindung zu Server aufbauen...

Empfohlene Antworten

Veröffentlicht

Hallo,

also ich versuche eine Verbindung zu einem Server aufzubauen, allerdings klappt das überhaupt nicht. Das ist mein Code:

#include

#include

void main () {

SOCKET sock;

int conn;

struct sockaddr_in server;

unsigned long addr;

struct hostent *hp;

sock = socket( AF_INET, SOCK_STREAM, 0 );

if (sock < 0) {

printf("Fehler beim Erzeugen des Sockets");

}

memset( &server, 0, sizeof (server));

addr = inet_addr("216.239.59.99");

memcpy( (char *)&server.sin_addr, &addr, sizeof(addr));

server.sin_family=AF_INET;

server.sin_port=htons(80);

conn=connect(sock,(struct sockaddr*)&server, sizeof(server));

}

und wenn ich es kompiliere bekomme ich die Fehlermeldung:

get_string3.obj : error LNK2019: unresolved external symbol _htons@4 referenced

in function _main

Was mache ich falsch? Muss ich noch die Biblio wsock32.lib einbinden?

Ich arbeite unter Win und mit dem Editor (ConText)

Gruß

Chris

P.S.: Ich hab jetzt mal in Visual Studio ein Projekt erstellt und die wsock32.lib durch den Linker hinzugefügt, nun bekomm ich aber immer die Fehlermeldung:

LINK : fatal error LNK1181: cannot open input file 'C:\Programme\Microsoft.obj'

und wenn ich es kompiliere bekomme ich die Fehlermeldung:

get_string3.obj : error LNK2019: unresolved external symbol _htons@4 referenced

in function _main

Streng genommen bekommst du diese Fehlermeldung nicht beim Compilieren, sondern danach, beim Linken. Der Compiler hat seine Arbeit erledigt.

Was mache ich falsch? Muss ich noch die Biblio wsock32.lib einbinden?
Jedenfalls fehlt die Bilbiothek, in der htons implementiert ist.

Ich arbeite unter Win und mit dem Editor (ConText)
Mit welchem Compiler du arbeitest, wäre wichtiger gewesen ;)

P.S.: Ich hab jetzt mal in Visual Studio ein Projekt erstellt und die wsock32.lib durch den Linker hinzugefügt, nun bekomm ich aber immer die Fehlermeldung:
Für MSVC heißt die Bibliothek "Ws2_32.lib".

LINK : fatal error LNK1181: cannot open input file 'C:\Programme\Microsoft.obj'
Hast du da einen Pfad mit angegeben?

Hi,

also ich arbeite mit Visual Studio 2005.

Was meinst Du mit "Hast du da einen Pfad mit angegeben?"

Also ich habe die Datei auch nicht auf meinem PC und ich habe sie auch nicht im Prog mit angeben.

Kann man eine Biblio nicht auch per Code einbinden? Wahrscheinlich nicht :confused: ... Ich habe sonst immer im Editor programmiert und dann mittel Visual Prompt die Dateien mit: cl Kuckuck.c

kompiliert. Gibt es da nicht noch eine Möglichkeit eine Biblio mit einzubinden:

cl Kuckuck.c -incl c:\Biblio.lib

oder so?

Vielen Dank schon einmal

Gruß

Chris

Was meinst Du mit "Hast du da einen Pfad mit angegeben?"
Du hast doch geschrieben:
Ich hab jetzt mal in Visual Studio ein Projekt erstellt und die wsock32.lib durch den Linker hinzugefügt,
Wie genau hast du das gemacht?

Also ich habe die Datei auch nicht auf meinem PC und ich habe sie auch nicht im Prog mit angeben.
Hast du das Platform SDK installiert?

Kann man eine Biblio nicht auch per Code einbinden? Wahrscheinlich nicht
Doch, mit #pragma comment. Das ist aber nicht Teil des Standards, nicht jeder Compiler kann das.

Gibt es da nicht noch eine Möglichkeit eine Biblio mit einzubinden:

cl Kuckuck.c -incl c:\Biblio.lib

Das sollte mit /link gehen. Aber warum bedienst du deinen Compiler über die Kommandozeile, wenn du eine IDE hast?
Du hast doch geschrieben:Wie genau hast du das gemacht?

Ach so, beim Projekt habe ich über Properties -> Linker den Pfad zur Biblio angegeben (C:\programme\visual studio\...)

Hast du das Platform SDK installiert?

Weiß ich leider gar nicht genau. Wie finde ich das heraus?

Doch, mit #pragma comment. Das ist aber nicht Teil des Standards, nicht jeder Compiler kann das.

Stimmt, das habe ich schon probiert gehabt, ich war mir aber nicht sicher, ob es das richtige dafür ist. Ich werde es damit noch einmal probieren... bzw mit /link

Das sollte mit /link gehen. Aber warum bedienst du deinen Compiler über die Kommandozeile, wenn du eine IDE hast?

Ich arbeite lieber mit dem Editor, der ist schön klein und wirkt irgendwie "direkter", als diese riesige IDE, mit all den Projekten, Einstellungen und Fehlermeldungen :). Bisher hatte auch immer der Editor gereicht, aber ich glaube, die Zeiten sind langsam vorbei...

Ach so, beim Projekt habe ich über Properties -> Linker den Pfad zur Biblio angegeben (C:\programme\visual studio\...)
Das meinte ich mit "hast du einen Pfad angegeben". Du hast einen Pfad angegeben, und da steht ein Leerzeichen drin. Normalerweise gibt man da keine Pfade an, sondern regelt das über die Library-Verzeichnisse.

Weiß ich leider gar nicht genau. Wie finde ich das heraus?
Systemsteuerung?

Ich arbeite lieber mit dem Editor, der ist schön klein und wirkt irgendwie "direkter", als diese riesige IDE, mit all den Projekten, Einstellungen und Fehlermeldungen :).
Dann ist das Problem hausgemacht. Du bekommst jetzt Probleme mit genau den Aufgaben, die dir die IDE abnimmt.

Hi,

und wie mache ich das mit den Library-Verzeichnissen? Soll ich das ganze Verzeichniss einbinden?!

Wenn ich dem Linker also einen Pfad ohne Leerzeichen vorgebe, dann sollte es funktionieren?

Vielen Dank für die viele Hilfe. Ich probiere es heute Abend aus und sag bescheid!

Gruß & Dank

Chris

Hallo,

also ich habe es geschafft! ich habe die .lib einfach in c:\ kopiert und jetzt funktioniert es!

ach so, sdk hab ich drauf!

vielen, vielen dank!

chris

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.