AMIGA-RESISTANCE
https://forum.amiga-resistance.info/

Problem mit den Network Befehlen
https://forum.amiga-resistance.info/viewtopic.php?f=38&t=3521
Seite 1 von 1

Autor:  msu [ 02 Apr 2017, 16:04 ]
Betreff des Beitrags:  Problem mit den Network Befehlen

Hallo

Bin gerade mal ein wenig mit einer kleinen Server/Client Anwendung beschäftigt, komme aber nicht so recht weiter.

Hier mal ein kleiner Code, funktioniert auch soweit, leider allerdings bestenfalls auf 80er Jahre Niveau als noch Serielle- Datenübertragung modern war. :oops:

Server:
;SERVER
;Hollywood 7

SetDefaultEncoding(#ENCODING_ISO8859_1, #ENCODING_ISO8859_1)



Function Connect(msg)
	client_id=msg.clientid
	DebugPrint(client_id)
EndFunction


Function DisConnect(msg)
	CloseConnection(msg.id)
EndFunction


Function receive(msg)
	data$ = ReceiveData(client_id, #RECEIVELINE)
	If data$ = "cmd:bereit"
		send(msg)
	EndIf
EndFunction


Function send(msg)
	file_Pfad$ = FileRequest("Eine große Datei zum senden wählen", "*")
	OpenFile(1, file_Pfad$)
	file$ = ReadBytes(1)
	SendData(msg.id, file$)
EndFunction

;*************************************************************************************************

CreateServer(1,80)

InstallEventHandler({OnConnect=Connect, OnDisconnect=DisConnect, onreceivedata=receive})

Repeat
	CheckEvent
	Wait(1)
Forever
Client:
;CLIENT
;Hollywood 7

SetDefaultEncoding(#ENCODING_ISO8859_1, #ENCODING_ISO8859_1)


Function receive()
	data$ = ReceiveData(1, #RECEIVEALL, False)
	DebugPrint("Alle Daten empfangen")
EndFunction





InstallEventHandler({onreceivedata=receive})
OpenConnection(1, "localhost", 80)
SendData(1,"cmd:bereit")

Repeat
	CheckEvent
	Wait(1)
Forever
Das Problem bei diesem Code ist, sobald der Serve einen Klienten bedient, ist er für weiter Klienten nicht mehr ansprechbar bis der erste Klient alle Daten erhalten hat.
Hmm, irgendwie hat das nichts mit einem Server zu tun.
Eigentlich sollte er ja senden, aber gleichzeitig weitere Klienten bedienen können.

Vielleicht kann hier ja jemand helfen.

Grüße, Michael

Autor:  Tipsi [ 03 Apr 2017, 16:32 ]
Betreff des Beitrags:  Re: Problem mit den Network Befehlen

Salli msu

Ich bin leider alles andere als ein Experte bei Netzwerkfragen.
Wenn ich so einen Blick in das Handbuch werfe, finde ich keinen
Hinweis darauf, dass Du mehrere Clienten aufs Mal bedienen
kannst. Hintereinander ja, parallel nein.

Ob es eventuell mögliche wäre, von jedem Clienten immer wieder
nur einige Bytes anzufordern, weiss ich als "Gipser" leider nicht.

Griessli
Tipsi

Autor:  msu [ 03 Apr 2017, 18:36 ]
Betreff des Beitrags:  Re: Problem mit den Network Befehlen

Hi Tipsi

In anderen Programmiersprachen unter Windows würde ich jedem Klienten einfach einem eigenen Thread zuordnen.
Ok, Hollywood kennt leider keine Threads. :(
Ist irgendwo schade, habe jetzt nen HTTP Webserver fast fertig und leider zu spät bemerkt, das das ganze nicht so wirklich Mehrbenutzer fähig ist. :oops:
Der HTTP Server funktioniert auch ganz gut, erst bei großen Datenpaketen (Downloads) bemerkt man das Problem.

Grüße, Micha

Autor:  Tipsi [ 03 Apr 2017, 19:41 ]
Betreff des Beitrags:  Re: Problem mit den Network Befehlen

Hhm, wenn Thrads fehlen, dann schreib doch mal
Andreas an. Vielleicht kann er das in Hollywood
einfügen oder es gibt eine andere Lösung. Eben,
bin Gipser... :)

Griessli
Tipsi

Autor:  HelmutH [ 05 Apr 2017, 18:39 ]
Betreff des Beitrags:  Re: Problem mit den Network Befehlen

Hi zusammen
Ja, das wäre auch mein Vorschlag gewesen, den Tipsi da gemacht hat.
Andreas geht da ziemlich gut auf Vorschläge ein, wie man ja an der
Weiterentwicklung von Hollywood sehen kann.

Seite 1 von 1 Alle Zeiten sind UTC
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/