Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Heimnetzwerk
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Progger_X
Mr. Lagg


Anmeldungsdatum: 24.11.2004
Beiträge: 784
Wohnort: Leipzig

BeitragVerfasst am: 18.06.2005, 12:35    Titel: Heimnetzwerk Antworten mit Zitat

Hallo.

Ich habe ein Heimnetzwerk zuhause, und möchte damit bei jedem schleifendurchlauf das auf den anderen computern alles zum Hauptcomputer übertragen wird, was sie gemacht haben(weiß nicht, vllt geht das am leichtesten wenn man immer xmaus, ymaus und button überträgt?). Wie geht das für 4 Computer(synchron, das isn spiel, sonst wärs unfair)?

Die IP Addresse des Hauptcomputer ist 169.254.68.4, die der anderen 169.254.68.1-3. Subnetzmaske ist überall 255.255.255.0 und Arbeitsgruppe ist Reichelthome.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 18.06.2005, 13:21    Titel: Antworten mit Zitat

Hallo.

Für ein Spiel? Ähä, ein Ich-Seh-Was-Du-Gerad-Arbeitest-Spiel?! durchgeknallt
Wenn ja, dann nimm einfach VNC oder eine Software namens SyncronEyes.

Wenn es irgendein Netzwerkspiel a la Siedler oder sowas werden soll, dann kannst du die Daten einfach über das Winsock übertragen. Genügend Tutorials bzw. Codes dazu findest du über google. Diese werden zwar nicht für FB, sondern am besten für VB sein, aber da muss man nur wenige Dinge ändern. Um das Bild zu übertragen, mach am besten jede Sekunde einen Screenshot und übertrag den dann. Ich glaube aber, dass das eine ziemlich träge Angelegenheit wird, wenn du mich fragst. Bei einem Spiel würde ich dir eher raten, nur "Scripts" oder sowas zu übertragen wie
Code:
Haus {
 X = 100
 Y = 300
 Art = Bauernhof
 Schaden = 0
 Wandfarbe = rot
}

Das macht das ganze enorm schneller und mit einem Screenshot kannst du doch auf einem Spielserver nicht viel anfangen.

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Progger_X
Mr. Lagg


Anmeldungsdatum: 24.11.2004
Beiträge: 784
Wohnort: Leipzig

BeitragVerfasst am: 18.06.2005, 13:30    Titel: Antworten mit Zitat

Nein, Nicht das Spiel ich seh was du gerade arbeitest.

Ich habe

Code:
type raumschiffe
    x as integer
    y as integer
    typ as integer
    schilde as integer
'    transport as integer
    xziel as integer
    yziel as integer
    bauen as integer
    statimbau as integer
    imbau as integer
end type
type station
    x as integer
    y as integer
    typ as integer
    schilde as integer
    imbau as integer
    rsimbau as integer
end type
type schuss
    x as integer
    y as integer
    xrich as integer
    yrich as integer
end type
type sterne
    x as integer
    y as integer
end type


diese dinger. Wäre doch aber dumm, alles immer zu übertragen, denn während einem Schleifendurchlauf ändert sich nie alles.

Ich muss gestehen, ich habe abselut keine Ahnung von Winsock.dll oder von Visual Basic.

Soll ein Netzwerkspiel a la Siedler werden, aber es ist wesentlich einfacher aufgebaut als Siedler...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 18.06.2005, 13:53    Titel: Antworten mit Zitat

Hallo.

OK, na dann ist's ja schon klarer, wie's werden soll. Das Winsock kannst du auch in FB benutzen; es ist keine besondere Funktion von VisualBasic. Zum Winsock gibt es viele Infos im Netz. Die Sachen, die für VB gelten, gelten meistens auch für FB.

Du könntest, um nicht alles übertragen zu müssen, jeweils noch ein Element "Senden As Byte" oder so in jeden Type mitreinnehmen. Nimm dafür den kleinsten Datentyp den FB bietet. Das ist soweit ich weiß Byte. Jedes Mal, wenn du dann am Raumschiff(xy%) irgendetwas änderst, wird Senden auf 1 gesetzt. Dann fragst du in der Schleife ab, ob dieses Flag gesetzt ist und setzt es nach der Übertragung wieder auf "Erledigt", also 0. lächeln
Code:
Do
...
 If Raumschiff(i%).Senden = 1 Then
  Call Übertragung(Raumschiff(i%))
  Raumschiff(i%).Senden = 0
 End if
...
Loop


Verstanden, wie ich das meine?

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Progger_X
Mr. Lagg


Anmeldungsdatum: 24.11.2004
Beiträge: 784
Wohnort: Leipzig

BeitragVerfasst am: 18.06.2005, 14:27    Titel: Antworten mit Zitat

Ich glaube, du meinst das so:

[code]
type raumschiffe
x as integer
y as integer
typ as integer
schilde as integer
xziel as integer
yziel as integer
bauen as integer
statimbau as integer
imbau as integer
senden as byte
end type
type station
x as integer
y as integer
typ as integer
schilde as integer
imbau as integer
rsimbau as integer
senden as byte
end type
type sterne
x as integer
y as integer
end type
[/cody]
(Für den Anfang)


[code]
ubertrag:
'Hier müsste mans synchronisieren
zahler=1
do
if rs(zahler).senden=1 then
rs(zahler).senden=0
'Übertragen
end if
zahler=zahler+1
loop until zahler>100
zahler=1
do
if stat(zahler).senden=1 then
stat(zahler).senden=0
'Übertragen
end if
zahler=zahler+1
loop until zahler>100
zahler=1
do
if rs(zahler).senden=1 then
rs(zahler).senden=0
'Übertragen
end if
zahler=zahler+1
loop until zahler>100
'Hier müsste man empfangen
return[/code]

So in der Richtung?
Wenn dus so meinst, hab ich das verstanden, aber ich würde gern noch wissen, wie ich das dann Übertrage/Empfange(Synchron)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 18.06.2005, 14:54    Titel: Antworten mit Zitat

Hallo,

ja, so in etwa hab ich mir das vorgestellt. lächeln

Schau doch mal im größten FreeBasic Forum. Dort gab's das Thema Winsock schon öfters: lächeln
Beispiel: http://forum.qbasicnews.com/viewtopic.php?t=9727&highlight=winsock

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Progger_X
Mr. Lagg


Anmeldungsdatum: 24.11.2004
Beiträge: 784
Wohnort: Leipzig

BeitragVerfasst am: 18.06.2005, 17:26    Titel: Antworten mit Zitat

Ich spreche kein Englisch, hab halt nur das aus der Schule und das is net viel, ich könnte höchstens auf Englisch einkaufen oder übers Wetter reden.

Und im Deutschen hab ich nix groß gefunden, was mir hilft.

Und das mit Netzlaufwerk hab ich früher mal mit QB probiert, ist aber sehr langsam und mir war es nicht möglich das zu synchronisieren, außerdem gab´s immer nen Fehler wenn die beiden gleichzeitig was machen wollten.

Gibts net irgendwo nen Tutorial dazu? Für QB gabs doch die Netzwerklib, gibs die auch für FB?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 18.06.2005, 17:57    Titel: Antworten mit Zitat

Hallo.

Die Netzwerklib von marzec tut doch eigentlich genau das, was ein Winsock auch kann. Ich hab mir jetzt mal die Mühe gemacht und dir was Deutsches gesucht: http://www.activevb.de/tipps/vb6tipps/tipp0557.html

Das ist eigentlich für VB, aber mit ein paar kleineren Änderungen läuft der Source auch mit FB. Vereinfacht gesagt kann man mit dem Teil Daten über einen bestimmten Port an verschiedene IP-Adressen senden und auch an diesen Ports lauschen, sprich man wartet, bis was kommt. zwinkern

Um einen VisualBasic Code nach FreeBasic zu portieren, muss man eigentlich immer nur Public/Private weglassen und den Datentyp Boolean überall durch Byte oder Integer ersetzen und am Anfang des Programms
CONST TRUE = -1
CONST FALSE = 0
schreiben. Außerdem musst du die Codes, die sonst beim Drücken einer Schaltfläche kämen, ein wenig auf die Tastatursteuerung umbauen, aber das sollte kein Problem sein.

Versuch dich erst mal eine Zeit an dem Code. Wenn du nicht weiterkommst, meld dich noch mal mit dieser Codestelle.

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Progger_X
Mr. Lagg


Anmeldungsdatum: 24.11.2004
Beiträge: 784
Wohnort: Leipzig

BeitragVerfasst am: 18.06.2005, 19:14    Titel: Antworten mit Zitat

Danke, aber ich versteh den Code nicht mal annährungweise. Das sind 2616 Zeilen verschachtelte Subs und so n Zeugs, außerdem is irgend nen Array net definiert und so n Zeugs.

Könntest du mir mal an nem Beispielcode zeigen, wie das funktioniert?
Ich hab ihn hier her gemacht:http://phpfi.com/66408
Ist nen sehr einfacher Code, nur zur illustration wies geht.[/code]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 18.06.2005, 19:23    Titel: Antworten mit Zitat

Hallo.

Also ich bin wirklich nicht gewillt, diesen Riesencode für dich mal eben so umzubauen. Das ist vermutlich einige Stunden Arbeit. Ich habe nicht gesagt, dass es 5 Minuten dauert oder dass du den Code so direkt aus dem Internet kompilieren kannst. Versuch dich doch mal ein paar Stunden daran. lächeln Das gehört zum Programmieren dazu. Die Netzwerkunterstütung ist in so einem Netzwerkspiel nun mal der größte Brocken. Wenn ich dir das schreiben würde, dann hätte ich ja >90% des Spiels geschrieben. zwinkern

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Progger_X
Mr. Lagg


Anmeldungsdatum: 24.11.2004
Beiträge: 784
Wohnort: Leipzig

BeitragVerfasst am: 18.06.2005, 21:33    Titel: Antworten mit Zitat

Das ist ja nur so nen Spiel, das ich in 5 Minuten geschrieben hab..das Hauptspiel is größer, da würd ich den Code selbst machen.

Das Problem ist, das ich nie und nimmer diesen Riesencode verstehen werd...auch wenn ich das Declare Zeugs davor schreib.
Gibts nicht was ganz einfaches, was mach so mit Winsock für den Anfang machen kann? So zum einüben?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 18.06.2005, 21:43    Titel: Antworten mit Zitat

Hm, unter VisualBasic da gibt es ein Winsock-Control. Das lässt sich weeeesentlich leichter ansteuern. Da machst du Winsock1.Connect 192.168.0.100, 123 und schon bist du zum Host auf Port 123 verbunden. neutral Die Winsock-DLL ist ziemlich schlecht zu handlen, aber eine andere Möglichkeit gibt es (ausgenommen Netzlaufwerk) mit FreeBasic nicht. Es geht auch nicht darum, dass du den Code verstehst. Du musst ihn nur so umbauen, dass er sich kompilieren lässt. Das ist erst mal das Wichtige. Dazu machst du FBC.EXE MYCODE.BAS und schaust dir den ersten gemeldeten Fehler an. Dann gehst du in Notepad oder so in diese Zeile und schaust, ob da vielleicht ein störendes Public, Private oder Byte o.ä. steht und verbesserst das. Dann wieder von vorn versuchen zu kompilieren. Viel komfortabler geht das allerdings mit der fbIDE, die du auf www.freebasic.de downloaden kannst. Versuch es doch erst mal soweit abzuspecken, sodass man es kompilieren kann. Verstehen musst du es dazu noch nicht.
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Progger_X
Mr. Lagg


Anmeldungsdatum: 24.11.2004
Beiträge: 784
Wohnort: Leipzig

BeitragVerfasst am: 18.06.2005, 21:55    Titel: Antworten mit Zitat

Nee, ich meinte, gibts nicht irgendwie was, was ich mit Winsock.dll machen kann(ohne Netzwerk), so einfach um mal überhaupt n bisl zu verstehen wie das funktioniert.

Code:
Winsock1.Connect 192.168.0.100, 123

Dann ist der mit dem Host verbunden...kann der da irgendwas machen?
Wie überträgt man dann daten?
Muss ich da so was wie Winnsock.dll.init oder so machen? Deshalb würd ich je gern ma irgendwas proggrammieren mit Winsock, damit ich erstmal so n bisl weiß wie das funktioniert...vllt Bildschirmausgabe mit Winsock oder irgendwas. Nur zum Lernen.

Ach, die störenden Public´s hab ich schon raus, einfach mit der IDE und alle ersetzen...

Ich hab mir gleich am Anfang das Komplettpaket mit Ide runtergeladen. Ich würd nich die ganzen Zeilen ohne Ide lesen...und ich glaub nicht das ich überhaupt was mit FB gemacht hät ohne Ide...mit Editor oder sonstwas bearbeiten und dann DOS Modus und dann kompilieren...das wär schrecklich.

EDIT: ich hab mir ergoogelt das es den Befehl
Code:
opensocket( AF_INET, SOCK_STREAM, IPPROTO_TCP )

gibt. Was macht der?

EDIT2: ich weiß jetzt das es
'$include: "win/winsock.bi"
Gibt, das macht fügt Winsock zum Programm hinzu(hab bisher nur zeug mit der AK lib gemacht, da braucht ich kein include..)
Und ich weiß das ich mit
dim wsaData as WSAData
dim s as SOCKET
Winsock bereit mache oder so. Und weiter?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 18.06.2005, 22:19    Titel: Antworten mit Zitat

Hallo.

Zunächst mal Winsock ist nicht gleich Winsock. Unter VB gibt es ein Control, das man komfortabel mit Befehlen wie
Winsock1.Connect ...
Winsock1.SendData ...
ansteuern lässt. Dieses Control gibt es unter FreeBasic nicht. Um dennoch die gleichen Dinge tun zu können, musst du dir mit der WinAPI bzw. der winsock.dll ein eigenes solches Control bauen.
Und dieser riesige Code, den ich dir gegeben habe, stellt halt diese Funktionen bereit. Das bedeutet, dass du diesen Code brauchst, egal ob du nur 3 Buchstaben übertragen willst oder ob du es in ein Spiel einbauen willst. neutral
Um das Portieren des Codes zu FreeBasic wirst du nicht herumkommen. Die winsock.bi kannst du übrigens vernachlässigen.

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Progger_X
Mr. Lagg


Anmeldungsdatum: 24.11.2004
Beiträge: 784
Wohnort: Leipzig

BeitragVerfasst am: 18.06.2005, 22:26    Titel: Antworten mit Zitat

Gibts wenigstens irgendwas einfaches, was ich am Anfang machen kann?
So was wie "Hallo Welt" mit Winsock.dll anzeigen oder so was. So das ich erst mal die Grundlagen beherrsche. Weil als ich mit QB angefangen hab und als ich mit der AK Lib angefangen hab hab ich am Anfang eher was einfaches gemacht, und dann Netzwerkprogrammierung. Gibts da irgendwo solche Beispielcodes für z.B. Textausgabe oder irgendwas einfaches für Winsock.dll?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 23.06.2005, 17:03    Titel: Antworten mit Zitat

Ich bin mir nicht sicher, aber kann man nicht einfach den qbasic code nach freebasic umschreiben?? Marzec hat ja mal im qbforum eine ziemlich einfach zu vertehene tcp/ip komponente gepostet. Damit hab ich schon viel gemacht und da hat man auch weniger als 2000 Zeilen code. Wenn man das reine Programm nimmt, dann hat man ein sub server und ein sub client. Der rest ist in einer QB-Library bzw dll. So bleibt das übersichtlich. Der austausch zwischen 2 pcs mit dem programm geht auch sehr schnell.

Mfg
Michael
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Progger_X
Mr. Lagg


Anmeldungsdatum: 24.11.2004
Beiträge: 784
Wohnort: Leipzig

BeitragVerfasst am: 23.06.2005, 17:16    Titel: Antworten mit Zitat

QB Librarys kannst du net einfach übertragen missbilligen
Die AK Lib funzt in FB auch net. So wegen Interrupts oder so. So weit bin ich noch nicht... weinen

Wenn du ne FB Version davon hast oder weißt, wo man eine her bekommt, wär ich dafür aber sehr dankbar Zunge rausstrecken !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 23.06.2005, 18:21    Titel: Antworten mit Zitat

Wie manche ja bereits wissen, portiere ich die AK-Lib auf FB. Seit so ~4 Wochen habe ich aber nicht mehr daran weitergearbeitet.
Wenn ich mal etwas mehr Zeit habe, kann ich dies ja fortsetzen. Im Moment ist der Lib-Port allerdings fast unbrauchbar, da er viel zu sehr mit dem Restprogramm (http://www.Physics.de.tc) verwurstelt ist lächeln
_________________
» Yodl.de: So sucht man gestern. verwundert
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
Progger_X
Mr. Lagg


Anmeldungsdatum: 24.11.2004
Beiträge: 784
Wohnort: Leipzig

BeitragVerfasst am: 23.06.2005, 20:50    Titel: Antworten mit Zitat

Also müsste man das portieren...
Und eh ich das portier kann ich so was auch selbst schreiben, denn fürs portieren müsst ichs ja verstehen.

Also entweder Marzec ließt den Thread und portierts oder ich brauch Winsock.
Wenn ich nen FB Tut für Winsock oder ne portiere Lib hätte wär das beides sehr brauchbar...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 23.06.2005, 20:54    Titel: Antworten mit Zitat

Äh ja wenn die Lib mal Portiert ist, solltest du sie genau so wie in QB verwenden können lächeln
_________________
» Yodl.de: So sucht man gestern. verwundert
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz