Hey,
Ik wil met C# (.NET) de server informatie van een Call of Duty: Black Ops server opvragen (remote console, of rcon). Ik heb geen idee waar ik moet beginnen dus heb ik maar wat gegoogled, en toen heb ik een web-based rcon gevonden die eigenlijk precies doet wat ik wil doen (en veel meer). Helaas is deze in PHP geschreven, en daar weet ik nou net helemaal niets vanaf.
De meest belangrijke php file is denk ik deze, voor zover ik kan zien regelt dit alle connecties met de remote server, en het zenden en ontvangen van informatie:
snip *
Deze code kan ik, zelfs zonder php kennis, in drie delen splitsen:
Toen vond ik de UdpClient class, en die leek wel interessant (aangezien er naar "udp://..." geconnect wordt in de php code voor zover ik kan zien), dus heb ik daar iets omheen gebouwd wat lijkt op de php code. Dit is dus mijn vertaling van de php code naar C#, voor zover ik wist wat er gebeurde:
snip *
Het 'verzenden' gedeelte is voornamelijk uit de hoge hoed getrokken. Ik zag die \xff en \x00 dingen in de php code en dacht dat dat waarschijnlijk hex characters waren ofzo (ook dat weet ik dus niet zeker) dus heb ik dat ook maar naar C# vertaald. Ik weet niet of dat klopt....
Het gedeelte met het async ontvangen komt rechtstreeks uit MSDN.
Ik gebruik dit nu als volgt:
"teamstatus" zou een geldig commando moeten zijn wat een lijstje met spelers terug zou moeten geven, inclusief naam, id, score, ping, etc.
Als ik dit run dan krijg ik echter nooit een response. Ik zie alleen 'listening for messages', maar verder niets. Ik heb een aantal minuten gewacht maar het lijkt erop dat de callback functie nooit aangeroepen wordt, ik krijg gewoon niets terug.
Wat doe ik nou fout? Zoals ik al zei, ik weet niets van PHP, en ook vrijwel niets van dit soort 'connecties' met Udp of whatever, dus op dit moment ben ik eigenlijk maar wat aan het proberen om iets aan de gang te krijgen. Enige hulp, al is het wat links naar relevante artikels ofzo, wordt op prijs gesteld, dan weet ik tenminste wat ik aan het doen ben... Maar op dit moment weet ik dus niet zo goed waar ik op zou moeten zoeken ofzo.
Bedankt!
Ik wil met C# (.NET) de server informatie van een Call of Duty: Black Ops server opvragen (remote console, of rcon). Ik heb geen idee waar ik moet beginnen dus heb ik maar wat gegoogled, en toen heb ik een web-based rcon gevonden die eigenlijk precies doet wat ik wil doen (en veel meer). Helaas is deze in PHP geschreven, en daar weet ik nou net helemaal niets vanaf.
De meest belangrijke php file is denk ik deze, voor zover ik kan zien regelt dit alle connecties met de remote server, en het zenden en ontvangen van informatie:
snip *
Deze code kan ik, zelfs zonder php kennis, in drie delen splitsen:
- 'Properties' als Host, Port en Password, inclusief de getters/setters. Dit lukt allemaal wel uiteraard.
- Connecten, zenden van commando's en ontvangen van informatie. Dit lukt me niet, en hier heb ik hulp bij nodig.
- Het parsen van de ontvangen informatie (tot op zekere hoogte, in andere files wordt nog meer geparsed denk ik). Hier heb ik misschien ook nog wel wat hulp bij nodig, maar op dit moment nog niet, ik wil eerst uberhaupt iets terug krijgen.
Toen vond ik de UdpClient class, en die leek wel interessant (aangezien er naar "udp://..." geconnect wordt in de php code voor zover ik kan zien), dus heb ik daar iets omheen gebouwd wat lijkt op de php code. Dit is dus mijn vertaling van de php code naar C#, voor zover ik wist wat er gebeurde:
snip *
Het 'verzenden' gedeelte is voornamelijk uit de hoge hoed getrokken. Ik zag die \xff en \x00 dingen in de php code en dacht dat dat waarschijnlijk hex characters waren ofzo (ook dat weet ik dus niet zeker) dus heb ik dat ook maar naar C# vertaald. Ik weet niet of dat klopt....
Het gedeelte met het async ontvangen komt rechtstreeks uit MSDN.
Ik gebruik dit nu als volgt:
C#:
1
2
3
| Rcon r = new Rcon("173.199.111.167", "mypassword"); r.Connect(); r.SendCommand("teamstatus"); |
"teamstatus" zou een geldig commando moeten zijn wat een lijstje met spelers terug zou moeten geven, inclusief naam, id, score, ping, etc.
Als ik dit run dan krijg ik echter nooit een response. Ik zie alleen 'listening for messages', maar verder niets. Ik heb een aantal minuten gewacht maar het lijkt erop dat de callback functie nooit aangeroepen wordt, ik krijg gewoon niets terug.
Wat doe ik nou fout? Zoals ik al zei, ik weet niets van PHP, en ook vrijwel niets van dit soort 'connecties' met Udp of whatever, dus op dit moment ben ik eigenlijk maar wat aan het proberen om iets aan de gang te krijgen. Enige hulp, al is het wat links naar relevante artikels ofzo, wordt op prijs gesteld, dan weet ik tenminste wat ik aan het doen ben... Maar op dit moment weet ik dus niet zo goed waar ik op zou moeten zoeken ofzo.
Bedankt!
[ Voor 52% gewijzigd door Woy op 15-12-2010 09:16 ]