Toon posts:

[.NET] Server applicatie aansturen vanaf client*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi

Ik heb een vraag: ik heb hardware gemaakt om me lichten te besturen via de pc,
natuurlijk heb ik ook software daar voor gemaakt die op de pc draait voor de de besturing van de hardware voor het dimmen van mijn lichten. Wat ik wou weten
wat is de beste manier om het zeg maar op mij pocketpc te laten draaien en de
pc waar het op aangesloten zit als server draaien. Wat moet het doen ? stel dimmer 1. heeft een waarde tussen 0 en 255. 0= uit - 255=100% aan dit regel ik met een schuifbalk. wat de pocket pc moet doen is een waarde tussen 0 en 255 zenden via wi-fi naar de server en de server geeft het dan door aan de hardware.
wie weet hoe ik gemakkelijk en eenvoudig hiervoor een server/client script kan maken om een getal tussen de 0 en 255 van de client door te zenden naar de server. als het even kan het liefst zonder vertraging. ik neem aan dat dit kan zonder andere server toepassingen te gebruiken

bij voorbaat dank, Thomas

[ Voor 1% gewijzigd door curry684 op 19-12-2003 12:39 ]


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-05 16:53
- plep -

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

Ik gok dat je eens kan gaan kijken naar Remoting :) Je creert dan een serverapplicatie en een clientapplicatie, waarbij de client contact maakt met de server. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
Ik heb je titel ff aangepast naar een titel die de lading wat meer dekt.
Daarnaast vind ik jouw post nogal onduidelijk; gebruik eens paragrafen etc, ipv je zinnen aan elkaar te reigen.

Zoals gorgi_19 al opmerkt kan je eens kijken naar remoting. Je kan je server-applicatie die het remoting object host in een service draaien.
Je client maakt contact met je server, en geeft aan welke methods het remoting object moeten uitvoeren.

https://fgheysels.github.io/


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Zoek eens op de 'Coding for Fun' columns van Duncan Maxkenzie op msdn.microsoft.com, volgens mij heeft hij daar een voorbeeld.

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
Bedank voor jullie reakties nou heb ik dus dat met remote gedaan en dat console server applicatie werkt, alleen als je een pocketpc programma maakt kan je
System.runtime.remoting niet gebruiken dus ik was nog wat op google aan het zoeken en vond dit artikel :

So, instead let's start a .NET Remoting crash course. As a server
application (running on Win XP, 2000 or so) you can implement the following
in a C# console application. (You have to set a reference to
System.Runtime.Remoting.dll !)

C#:
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
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels.Http;
using System.Runtime.Remoting.Channels;

namespace Server
{
  class GreetingManager: MarshalByRefObject
  {
    public String GetGreeting (String name)
    {
    return "Hello " + name;
    }
  }

  class ServerStartup
  {
    static void Main(string[] args)
    {
    Console.WriteLine ("Server started");
    HttpChannel chnl = new HttpChannel(1234);
    ChannelServices.RegisterChannel(chnl);
    RemotingConfiguration.RegisterWellKnownServiceType(
            typeof(GreetingManager),
            "GreetingManager.soap",
            WellKnownObjectMode.Singleton);

    // the current thread will be suspended so that
    // the server will keep running.
    System.Threading.Thread.CurrentThread.Suspend(); 
    }
  }
}

After compiling and starting this console application, create a new CF
application, add a Web Reference to
http://:1234/GreetingManager.soap?wsdl (you really have to
write your IP-Address here, "localhost" will of course not work as you are
going to call this from your PocketPC!). Don't forget to start the
console-application before adding the web reference!

You can now happily access this web services from your PocketPC without
running IIS on the "server" machine.

dat werkt allemaal maar nou is dit misschien wel een stomme newbie vraag maar hoe kan ik nu iets naar dat server applicatietje zenden. MEt welke string enzo ???


Bij voorbaat dank en nogmaals bedankt voor de reakties, Thomas

modbreak: mooi he, die [code=vb] tags om je code ;) en die groetjes hoeven niet iedere keer hoor, we doen elkaar hier per definitie permanent de groeten :P

modbreak2: heej prutser van een curry, dat is c# code, geen vb code :P

modbreak3: alsof ik het verschil zie... en blijf eens van m'n modbreaks af :Y)

[ Voor 19% gewijzigd door curry684 op 22-12-2003 13:53 ]


  • guanpedro
  • Registratie: Maart 2002
  • Laatst online: 18-12-2025

guanpedro

Live forever or die trying

Die Web Reference maakt een proxy voor alle objecten en methoden van de server applicatie. Vervolgens kan je dus gewoon gebruik maken van de methoden en de proxy communiceert voor jou met de server applicatie.

Je zou nu dus de namespace (de naam van de Web Reference) moeten kunnen gebruiken om de objecten/methodes van de server applicatie in de client applicatie aan te roepen.

PC: MSI-NEO2FISR P4-2.6HT@2.8 Dual-channel GEIL-PC3500 Intel CSA GB-LAN 9600PRO Pioneer DVR106 Server: Dual Xeon-2GHz 3Ware 7500-12 11x120GB RAID5 GB-LAN RH 9 2.4.22 Digicam: Sony DSC-F717


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
1. Je hoeft niet steeds te groeten enzo onder je posts, dat leest irritant.
2. Je hoeft ook niet het hele vb met uitleg enzo hier gaan posten, want dat is een beetje irrelevant.

Ik stel voor dat je , naast het uitproberen van dat voorbeeld, eerst eens iets gaat lezen over remoting. Wat het is, hoe het werkt.

Bedoel je nu dat de remoting namespace niet beschikbaar is voor het compact framework oid?

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
guanpedro schreef op 19 december 2003 @ 14:06:
Die Web Reference maakt een proxy voor alle objecten en methoden van de server applicatie. Vervolgens kan je dus gewoon gebruik maken van de methoden en de proxy communiceert voor jou met de server applicatie.

Je zou nu dus de namespace (de naam van de Web Reference) moeten kunnen gebruiken om de objecten/methodes van de server applicatie in de client applicatie aan te roepen.
Web References hebben te maken met Web Services, niet met Remoting. ;)

Maar, bij remoting wordt er dus ook een proxy object gemaakt dat je gebruikt in je client applicatie. Die proxy zorgt er idd voor dat de implementatie van de aangeroepen methods op de server worden uitgevoerd.

https://fgheysels.github.io/


  • guanpedro
  • Registratie: Maart 2002
  • Laatst online: 18-12-2025

guanpedro

Live forever or die trying

whoami schreef op 19 december 2003 @ 14:10:
[...]
Web References hebben te maken met Web Services, niet met Remoting. ;)
Ik begrijp je quote van mijn reply niet echt.

In het code-voorbeeld wat hij geeft staat dat een Web Reference gebruikt wordt om de http channel te benutten. Mijn reactie geeft alleen maar uitleg wat die reference doet en hoe je er verder mee aan de slag kan in je clientapplicatie.

PC: MSI-NEO2FISR P4-2.6HT@2.8 Dual-channel GEIL-PC3500 Intel CSA GB-LAN 9600PRO Pioneer DVR106 Server: Dual Xeon-2GHz 3Ware 7500-12 11x120GB RAID5 GB-LAN RH 9 2.4.22 Digicam: Sony DSC-F717


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
Waar zie jij hem gebruik maken van een web reference?

Ik zie enkel dat hij in z'n server-applicatie een server activated remoted object host, en dat hij dat remoted object via een HTTP channel laat communiceren op poort 1234 met een client.

Ik heb net ff vlug gekeken, en remoting is idd niet beschikbaar op het compact framework. Hij kan misschien wel een web-reference leggen van z'n pocketPC naar z'n remoted object

https://fgheysels.github.io/


  • guanpedro
  • Registratie: Maart 2002
  • Laatst online: 18-12-2025

guanpedro

Live forever or die trying

After compiling and starting this console application, create a new CF
application, add a Web Reference to
http://:1234/GreetingManager.soap?wsdl
Daar toch?

PC: MSI-NEO2FISR P4-2.6HT@2.8 Dual-channel GEIL-PC3500 Intel CSA GB-LAN 9600PRO Pioneer DVR106 Server: Dual Xeon-2GHz 3Ware 7500-12 11x120GB RAID5 GB-LAN RH 9 2.4.22 Digicam: Sony DSC-F717


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
Verwijderd schreef op 19 december 2003 @ 13:57:
dat werkt allemaal maar nou is dit misschien wel een stomme newbie vraag maar hoe kan ik nu iets naar dat server applicatietje zenden. MEt welke string enzo ???
Heb je die server - app al draaiend?

Dan maak je een client applicatie voor je pocket pc, waar je dus een (web-) reference legt naar jouw remoted object op de server.
VS.NET zal dan -als het goed is- een proxy object aanmaken voor je pocketPC applicatie. In die PocketPC applicatie kan je dus de methods van dat proxy-object aanroepen. Het proxy-object zal dan zeggen aan het werkelijke remoted object (dat dus op de server draait) dat het method x moet uitvoeren.

Voor jouw voorbeeld is dat dan concreet:
code:
1
myProxyObject.GetGreeting("blaat");


de GetGreeting method op de server zal dan dus uitgevoerd worden, en jouw pocketpc applicatie kan de output daarvan terugkrijgen.

@guanpedro: je hebt idd gelijk. Ik had te snel gelezen, en ik dacht dat je het over web services had.

[ Voor 12% gewijzigd door whoami op 19-12-2003 14:39 ]

https://fgheysels.github.io/


  • pistole
  • Registratie: Juli 2000
  • Laatst online: 15:23

pistole

Frutter

misschien een beetje simpel gedacht (maar ja, zo ben ik nu eenmaal ;) ) maar zou je je control niet kunnen aansturen vanuit een webpage? Dan kan je ongeacht je client altijd je lichten besturen; ook dus vanaf je werkplek etc

(en als je niet goed oplet / of juist wel kan de hele wereld jouw dimmers bedienen :D )

Ik frut, dus ik epibreer


  • guanpedro
  • Registratie: Maart 2002
  • Laatst online: 18-12-2025

guanpedro

Live forever or die trying

pistole schreef op 19 december 2003 @ 14:41:
en als je niet goed oplet / of juist wel kan de hele wereld jouw dimmers bedienen :D
Das een leuk idee, dan alleen nog een webcam erop mikken en dan is het een interactief geheel.

PC: MSI-NEO2FISR P4-2.6HT@2.8 Dual-channel GEIL-PC3500 Intel CSA GB-LAN 9600PRO Pioneer DVR106 Server: Dual Xeon-2GHz 3Ware 7500-12 11x120GB RAID5 GB-LAN RH 9 2.4.22 Digicam: Sony DSC-F717


  • cvs79
  • Registratie: April 2002
  • Laatst online: 14:17
En hoe geef je nu een class terug. GetGreeting geeft namelijk gewoon een string terug. Maar als je nu het volgende zou willen:

Server:
code:
1
2
3
4
5
6
Public Function GetReplenish(ByVal v_nummer As Long) As clsReplenish
  Dim l_clsReplenish As New clsReplenish
  
  l_clsReplenish.clsData = "DATA"
  GetReplenish = clsReplenish 
end function


POCKET PC CLIENT:
code:
1
2
3
4
5
6
  Dim l_Web As New UitslagService.clsUitslagServiceService
  Dim l_clsReplenish As New UitslagService.clsReplenish

  l_clsReplenish = l_Web.GetReplenish(177350)

  MsgBox(l_clsReplenish.clsData)


Want dit vindt ie dus niet zo leuk

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
Welke fout krijg je dan?

Je class moet btw alleszins Serializeable zijn. Maw, jouw class moet de Serializeable interface geimplementeerd hebben, ofwel het attributt Serializeable hebben.

https://fgheysels.github.io/


  • cvs79
  • Registratie: April 2002
  • Laatst online: 14:17
whoami schreef op 22 december 2003 @ 12:28:
Welke fout krijg je dan?

Je class moet btw alleszins Serializeable zijn. Maw, jouw class moet de Serializeable interface geimplementeerd hebben, ofwel het attributt Serializeable hebben.
An unhandled exception of type 'System.Xml.XmlException' occurred in System.Web.Services.dll

Additional information: The identifier "ref-10" does not appear in the document.

En wat bedoel je precies met Serializeable. Heb je een voorbeeld?

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
cvs79 schreef op 22 december 2003 @ 12:54:
[...]
En wat bedoel je precies met Serializeable. Heb je een voorbeeld?
Neem de .NET help er ff bij, je zal er een hele rits documentatie over vinden.

https://fgheysels.github.io/


  • guanpedro
  • Registratie: Maart 2002
  • Laatst online: 18-12-2025

guanpedro

Live forever or die trying

Niet vergeten na het aanpassen van je serverapplicatie de web reference van de clientapplicatie te vernieuwen, anders bevat het proxy object misschien oude/onjuiste informatie.

PC: MSI-NEO2FISR P4-2.6HT@2.8 Dual-channel GEIL-PC3500 Intel CSA GB-LAN 9600PRO Pioneer DVR106 Server: Dual Xeon-2GHz 3Ware 7500-12 11x120GB RAID5 GB-LAN RH 9 2.4.22 Digicam: Sony DSC-F717


  • cvs79
  • Registratie: April 2002
  • Laatst online: 14:17
Alvast bedankt voor de hulp. Maar van de help wordt ik ook niet echt wijzer. Dus als er iemand nog iets weet dan is het zeker welkom.

Ik ga zelf natuurlijk ook nog verder zoeken en als ik iets werkends heb zal ik het ook zeker posten hier

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
Wat heb je dan gezocht?
Als je een object door een channel wilt sturen, moet dat object kunnen opgeslagen worden. Vandaar dat die class Serializeable moet zijn.

https://fgheysels.github.io/


  • cvs79
  • Registratie: April 2002
  • Laatst online: 14:17
whoami schreef op 22 december 2003 @ 13:17:
Wat heb je dan gezocht?
Als je een object door een channel wilt sturen, moet dat object kunnen opgeslagen worden. Vandaar dat die class Serializeable moet zijn.
\

Google, msdn enz.

Heb wel gevonden dat je classe anders moet declaren
code:
1
2
3
4
5
6
<Serializable()> _
Public Class clsReplenish
  Inherits MarshalByRefObject

  Public clsData As String
End Class


Woohoo,
en nu werkt het wel.

Bedankt mensen voor de hulp

[ Voor 8% gewijzigd door cvs79 op 22-12-2003 13:43 . Reden: Update ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
cvs79 schreef op 22 december 2003 @ 13:34:
[...]
\

Google, msdn enz.

Heb wel gevonden dat je classe anders moet declaren
code:
1
2
3
4
5
6
<Serializable()> _
Public Class clsReplenish
  Inherits MarshalByRefObject

  Public clsData As String
End Class
Wat zeg ik dus? Dat je class Serializeable moet zijn dmv een serializeable attribuut mee te geven, of de ISerializeable interface te implementeren.
Dat zie je dus ook in die code staan die jij hier neergezet hebt. :z

Als je een remote-able object wilt, dan moet je dat ook van MarshalByRefObject afleiden.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
cvs79 schreef op 22 december 2003 @ 13:34:
[...]
\

Google, msdn enz.

Heb wel gevonden dat je classe anders moet declaren

Woohoo,
en nu werkt het wel.

Bedankt mensen voor de hulp
Heb je die class nu ook afgeleid van MarshalByRefObj?
Als je die class nl. enkel gebruikt om te returnen enzo, (en het dus geen class is waarvan er objecten als client-activated, of server - activated type draaien op de server), dan is het imo niet nodig om die class van MarshalByRefObj te inheriten. Serializable maken zou -voor zover ik me kan herinneren- voldoende moeten zijn.

https://fgheysels.github.io/


  • cvs79
  • Registratie: April 2002
  • Laatst online: 14:17
whoami schreef op 22 december 2003 @ 19:39:
[...]


Heb je die class nu ook afgeleid van MarshalByRefObj?
Als je die class nl. enkel gebruikt om te returnen enzo, (en het dus geen class is waarvan er objecten als client-activated, of server - activated type draaien op de server), dan is het imo niet nodig om die class van MarshalByRefObj te inheriten. Serializable maken zou -voor zover ik me kan herinneren- voldoende moeten zijn.
Idd, heb hem nu af hoeven leiden van MarshalByRefObj. Alleen Serialize was genoeg.
Pagina: 1