Я довольно новичок в кодировании Unix и хотел бы поработать над несколькими простыми сетевыми проектами. Я нашел несколько уроков, которые именно то, что я ищу, - в частности, этот: http://www.linuxhowtos.org/C_C++/socket.htm.
Я выяснил, как скомпилировать серверные и клиентские файлы c в исполняемые файлы, и я могу запустить их в терминале следующим образом:
open server
open client
так как я использую Mac OS X 10.7.5. Моя проблема в том, что мне нужно передавать аргументы этим программам при их инициализации. Учебник использует этот код:
server 51717
client clientName 51717
но я не нашел способа воспроизвести это в моем терминале Mac.
open server --args 51717 //doesn't work
Я нашел этот пост и создал яблочный скрипт с этим кодом
do shell script "open -a /Desktop/server --args 51717"
но это бросает кучу ошибок. Я попробовал много вариантов, но не смог заставить их бежать. Я также не смог заставить работать пример Chrome из этого поста (у меня не установлен FF).
Как передать простой целочисленный номер порта в качестве аргумента программе, как в учебнике? Это проще сделать на машине с Linux? У меня нет проблем с переключением ОС на этом этапе, и было бы идеально, если бы я мог использовать синтаксис «server 51717», который используется в учебнике, вместо того, чтобы создавать отдельный скрипт выполнения для каждой программы. Ищу ответ и совет. Благодарю.
РЕДАКТИРОВАТЬ:
Я заставил его работать правильно, но кое-что все еще не работает правильно. Я запускаю сервер так:
$ ./server 3456
затем откройте новый терминал и запустите клиент с ограниченным успехом:
$ ./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
Я могу запустить клиента с некоторыми комбинациями number.number, но он не работает для всех из них, и я не могу использовать какие-либо буквы. Почему работает только одно из этих решений?
РЕШЕНИЕ:
$ sudo nano /private/etc/hosts
добавьте 127.0.0.1 mClient
внизу, затем нажмите Ctrl ^ o, чтобы сохранить
Теперь это работает:
$ ./client mClient 3456