Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

NicoWe

Treue Seele

  • »NicoWe« ist der Autor dieses Themas

Beiträge: 126

Wohnort: Bielefeld / NRW

  • Private Nachricht senden

1

30.01.2008, 18:57

Mein WSock tut

Ich habe mal nen winsock tut geschrieben, hier ist zwar auch eins drin aber ich verlinke meins mal.
http://www.iphpbb.com/forum/85164184nx49…en-cpp-t49.html

Wobei ich gleich auch ein wenig Werbung für mein Programmierteam RCGames machen muss ;) Member immer gesucht.

Die codes sind nicht auf kompilierfähigkeit geprüft, sie sollen nur zeigen wie in etwa soetwas abläuft;)
Erfolg ist die Fähigkeit, von einem Misserfolg zum anderen zu gehen,
ohne seine Begeisterung zu verlieren.
-Winston Churchill-

p0llux

Treue Seele

Beiträge: 101

Wohnort: Aachen

Beruf: HiWi (theo. Inf.)

  • Private Nachricht senden

2

30.01.2008, 20:07

Hallo!

Also erstmal Danke für das Tutorial. Es kann irgendwie nie genug geben! Natürlich hab' ich auch 'ne Kiste Kritik mitgebracht:

Zuerst finde ich es ziemlich ätzend, wenn ich lange Texte lesen muss, die nicht in vernünftigem Deutsch geschrieben sind. Slang ist vielleicht cool, trendy und in, allerdings stört's beim Lesen einfach.

Andererseits (sowas gibt es afaik nirgends) fehlt mir irgendwie der Sprung zur Objektorientierung. Also es ist schön, dass du erklärst wie man mit der vom System bereitgestellten Infrastruktur interagiert, aber kein Mensch programmiert größere Sachen ohne auf OOP zurückzugreifen.

Viele Grüße,
Michael.

Sicaine

unregistriert

3

30.01.2008, 20:28

Ach du meine Guete. Ich steh ganz und garnicht auf Tutorials die ohne Hintergrundwissen geschrieben werden. Den grundlegensten Unterschied zwischen TCP/IP und UDP sollte dir aber klar sein: UDP braucht kein Feedback von der Gegenstelle und resendet Packete nicht, wenn sie nicht ankommen weil sie durch ttl verworfen wurden. Sehr sinnvoll von Videostreams etc. wo vlc z.B. halt nen Frame dropt. Auch beim Radio hoeren ist es nicht relevant ob mal Daten fehlen. Dadurch geht UDP _schneller_ und verursacht weniger Overhead. Sehr sinnvoll auch bei schnellen Multiplayern.

NicoWe

Treue Seele

  • »NicoWe« ist der Autor dieses Themas

Beiträge: 126

Wohnort: Bielefeld / NRW

  • Private Nachricht senden

4

31.01.2008, 17:22

Sry, ich glaube einer von uns beiden hat was falsch verstanden. Mir IST klar dass UDP keine Empfangsgarantie hat und somit schneller ist. Ich finde aber TCP trotzdem besser weil ich noch nicht sooweit bin dass ich schnelle Multiplayer schreibe, für meine Anwendungen passt TCP einfach besser uns das Tut richtet sich an solche denen es genauso geht wie mir.

Zitat


bei UDP wird einfach drauf los geschickt.


Damit meine ich dass die Daten zum Empfänger gesendet werden aber nicht unbedingt ankommen.

Was die Objektorientiertheit angeht... Stimmt, danke für die Kritik. Das ist mehr c als c++.
Erfolg ist die Fähigkeit, von einem Misserfolg zum anderen zu gehen,
ohne seine Begeisterung zu verlieren.
-Winston Churchill-

Sicaine

unregistriert

5

31.01.2008, 18:25

Wenn dir das klar ist, dann schreib das nicht so, wie dus geschrieben hast, in das Tutorial. Erklaer doch wenigstens kurz den Unterschied oder setze es voraus.

6

08.03.2008, 12:02

Ich hab noch'ne Frage: wie findet man die IP des Computers heraus, auf dem man sich befindet?

7

08.03.2008, 12:27

In den man den anderen client ganz lieb darum bittet, sie dir mitzuteilen ... oder man auf www.meineip.de nachguckt ;)
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

8

08.03.2008, 12:53

Für die lokale IP Liste kannst du folgendes verwenden:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <conio.h>
#include <windows.h>
#include <tchar.h>

#pragma comment( lib, "Ws2_32.lib" )

#if _UNICODE
#define myprintf wprintf
#else
#define myprintf printf
#endif

static inline void WSockCheckError( const PTCHAR func, int line )
{
    int errorcode = WSAGetLastError();

    if ( errorcode != 0 )
        myprintf( _T( "Error: %d at %s (%d)\n" ), errorcode, func, line );
}

#if 1
#define WSACALL( funcCall ) funcCall, WSockCheckError(  #funcCall, __LINE__ )
#else
#define WSACALL( funcCall ) funcCall
#endif

int main()
{
    WSADATA wsaData;
    TCHAR buffer[ 512 ] = { 0 };
    hostent* entp;

    WSACALL( WSAStartup( MAKEWORD( 2, 2 ), &wsaData ) );
    WSACALL( gethostname( buffer, sizeof( buffer ) * sizeof( buffer[0] ) ) );
    entp = WSACALL( gethostbyname( buffer ) );
    WSACALL( WSACleanup() );

    myprintf( _T( "Host: %s\n" ), buffer );

    for ( int i = 0; entp->h_addr_list[i]; ++i )
    {
        in_addr address;
        memcpy( &address, entp->h_addr_list[i], sizeof( in_addr ) );
        myprintf( _T( "  IP%d: %s\n" ), i, inet_ntoa( address ) );
    }

    _getch();
}
@D13_Dreinig

9

08.03.2008, 13:25

Tjo aber lokale IP hilft meist wenig ;) Und der Code ist fies :D
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

10

08.03.2008, 13:42

Zitat von »"Deviloper"«

Tjo aber lokale IP hilft meist wenig ;) Und der Code ist fies :D


Ich find den Code gut! :p Und ich verstand ihn so, das er die eigene IP haben möchte (Zitat: "...auf dem man sich befindet"), denn sonst wäre es ein Computer mit dem man schon verbunden ist und da braucht man noch viel weniger die IP auszulesen.
@D13_Dreinig

Werbeanzeige