Het creëren van een server vanaf het begin is een grote taak. Dit kan echter uw programmeervaardigheden aanzienlijk verbeteren en u in staat stellen deze aan uw behoeften aan te passen. Deze tutorial gebruikt python en low-level socket-programmering om een server te maken zodat clients met elkaar kunnen communiceren. Dit dekt ook alleen het proces op Windows. Sommige informatie wordt gegeven in de instructies, maar als u alleen de code wilt, staat deze in de figuren. (Opmerking: de hier gepresenteerde instructies zijn slechts de basis).
Stappen
Methode 1 van 3: Python installeren
Stap 1. Download Python
Ga naar de hoofdwebsite van Python en download Python 2.7.10. Nadat het is gedownload, doorloopt u de stappen van het python-installatieprogramma met standaardinstellingen. Deze link vindt u hier
Stap 2. Voer IDLE uit (Python GUI)
Ga naar de map Python 2.7 en voer IDLE (Python GUI) uit, python zou nu in je startmenu moeten staan waar de IDLE zich bevindt.
Stap 3. Maak een nieuw bestand aan
Ga naar Bestand in de linkerbovenhoek van het nieuw geopende venster en selecteer Nieuw bestand, je zou een leeg venster moeten openen met de titel Naamloos.
Methode 2 van 3: De server maken
Stap 1. Importeer de benodigde modules
De twee modules die nodig zijn voor deze code zijn "socket" en "threading". Dit kan door op de eerste regel “from socket import *” en op de volgende regel “import threading” te typen.
Stap 2. Maak een nieuwe thread aan
Dit zorgt voor het matchen van 2 klanten met elkaar. Threads zijn processen die kunnen worden uitgevoerd terwijl het hoofdprogramma wordt uitgevoerd. Typ precies zoals de afbeelding laat zien. Hiermee worden de variabelen in de thread ingesteld, zodat ze later kunnen worden aangeroepen.
Stap 3. Maak een threadproces aan
Om klanten rechtstreeks te laten communiceren, moet u elkaars informatie verzenden, waaronder hun IP-adres en welke poort ze gebruiken. Om dit te doen, moet u een socket-object maken dat kan worden gedaan met "variableName = socket(AF_NET, SOCK_DGRAM)". Hiermee wordt een socketobject gemaakt dat het UDP-protocol gebruikt. Bind vervolgens de socket aan uw IP-adres met een bepaald poortnummer met "roomSocket.bind((' ', self.port))". Het lege gebied staat voor uw eigen pc-IP-adres binnen uw lokale netwerk en self.port wijst de poortnummer dat is opgenomen wanneer u deze thread belt. Het laatste dat u met deze socket hoeft te doen, is er informatie doorheen sturen. Aangezien dit een UDP-socket is, moet u gewoon het IP-adres en de poort weten van de computer waarnaar u informatie verzendt, de syntaxis voor het verzenden is "socketName.sendto(IP, port)"
Stap 4. Maak de globale variabelen
Voor deze stap moet u verschillende variabelen definiëren, waaronder een gebruikerslijst, poortnummers, aantal klanten, klanten voor de thread en de kamer-ID. U moet ook een socket maken zodat uw server kan communiceren met internet. Dit doe je door een nieuw socket-object aan te maken en dit met een bepaald poortnummer aan je IP-adres te binden. (Het poortnummer kan van alles zijn, maar het is meestal iets hoogs om te voorkomen dat een ander proces het gebruikt of gereserveerde poortnummers gebruikt.)
Stap 5. Maak het hoofdserverproces
Hiermee wordt het klantadres ingevoerd en wordt de eerder gemaakte thread gestart. Dit omvat het wachten om gegevens uit de buffer te ontvangen en het clientadres op te halen en op te slaan om in de thread te worden gebruikt. De manier om informatie uit uw socket te halen, is door "socketName.recvfrom (1024)" aan te roepen, het aantal hier is slechts het aantal bytes dat per keer wordt gelezen. In dit voorbeeld slaan we het op in een variabele met de naam userAddr, en zodra dit gebeurt, kun je dit adres opslaan in de lijst die in stap 4 is gemaakt. Het if-statement zal een kamerthread maken als twee mensen verbinding maken en zal alleen een kamer maken wanneer er twee verschillende verbindingen plaatsvinden.
Stap 6. Sla je werk op
Dit moet worden gedaan in een map die gemakkelijk te bereiken is, zodat deze gemakkelijk toegankelijk is om te testen.
Methode 3 van 3: Testen
Stap 1. Maak een testclient aan
Dit is een zeer eenvoudige client die alleen afhandelt of de server de informatie van de andere client naar de huidige client heeft verzonden. Houd er rekening mee dat deze code, in tegenstelling tot de servercode, een servernaam vereist. Als u dit allemaal op één computer uitvoert, moet de servernaam de naam van uw pc zijn. U kunt uw computernaam achterhalen door met de rechtermuisknop op Deze computer te klikken en naar eigenschappen te gaan.
Stap 2. Sla je werk op
Dit moet in dezelfde map staan als de servercode.
Stap 3. Open drie verschillende opdrachtvensters
Ga naar het startmenu en typ in de zoekbalk "cmd" en druk op enter. Doe dit drie keer. De ramen zouden er zo uit moeten zien.
Stap 4. Voer de programma's uit
U moet het exacte pad typen wanneer u het opdrachtvenster gebruikt. U moet eerst de servercode in het ene opdrachtvenster uitvoeren en vervolgens de testclientcode in de andere twee. Als alles gelukt is krijg je iets van deze berichten in je venster.
Waarschuwingen
- Dit programma werkt alleen als het wordt uitgevoerd en clients worden getest op hetzelfde lokale netwerk.
- Python 2.7.10 is verouderd en nadert het einde van zijn ondersteuning. Om goede servers te blijven maken, is het aan te raden om in plaats daarvan de nieuwste versie van Python 3 te installeren.