Ich bin ziemlich neu in der Unix-Codierung und würde gerne an ein paar einfachen Netzwerkprojekten arbeiten. Ich habe ein paar Tutorials gefunden, die genau das sind, wonach ich suche - insbesondere dieses: http://www.linuxhowtos.org/C_C++/socket.htm .
Ich habe herausgefunden, wie man die Server- und Client-C-Dateien in ausführbare Dateien kompiliert, und ich kann sie im Terminal wie folgt ausführen:
open server
open client
seit ich Mac OS X 10.7.5 benutze Mein Problem ist, dass ich Argumente an diese Programme übergeben muss, wenn ich sie initialisiere. Das Tutorial verwendet diesen Code:
server 51717
client clientName 51717
Aber ich habe keine Möglichkeit gefunden, dies in meinem Mac-Terminal zu replizieren.
open server --args 51717 //doesn't work
ich habe das gefunden Post und erstellte ein AppleScript mit diesem Code
do shell script "open -a /Desktop/server --args 51717"
aber das wirft eine Reihe von Fehlern auf. Ich habe viele Variationen ausprobiert, konnte aber keine zum Laufen bringen. Ich konnte das Chrome-Beispiel von diesem Beitrag auch nicht zum Laufen bringen (ich habe FF nicht installiert).
Wie übergebe ich dem Programm eine einfache Integer-Port-Nummer als Argument, wie im Tutorial beschrieben? Ist das auf einem Linux-Rechner einfacher? Ich habe kein Problem damit, die Betriebssysteme zu wechseln, und es wäre ideal, wenn ich die Syntax 'server 51717' verwenden könnte, die im Lernprogramm verwendet wird, anstatt für jedes Programm ein separates Ausführungsskript erstellen zu müssen. Auf der Suche nach einer Antwort und einem Rat. Vielen Dank.
BEARBEITEN:
Ich habe es richtig laufen lassen, aber etwas funktioniert immer noch nicht richtig. Ich starte den Server so:
$ ./server 3456
Öffnen Sie dann ein neues Terminal und starten Sie den Client mit begrenztem Erfolg:
$ ./client mClient 3456
ERROR, no such host
$ ./client 127.0.0.1 3456
Please enter the message: //running correctly
//... this also works
$ ./client 127.1 3456
Please enter the message: //running correctly
Ich kann den Client mit einigen Zahlenkombinationen starten, aber es funktioniert nicht für alle und ich kann keine Buchstaben verwenden. Warum funktioniert nur eine dieser Lösungen?
LÖSUNG:
$ sudo nano /private/etc/hosts
hinzufügen 127.0.0.1 mClient
nach unten und drücken Sie dann Strg ^ o, um zu speichern
Das funktioniert jetzt:
$ ./client mClient 3456