Написание клиент / серверной программы на C на сервере UNIX - PullRequest
1 голос
/ 01 мая 2011

Я пытаюсь написать базовую клиент-серверную программу на C, используя сокеты в Unix.Я захожу на Unix-сервер моей школы с домашнего компьютера.Я вхожу в систему дважды, один для симуляции сервера и другой для симуляции клиента.Я использую AF_INET или AF_UNIX?Чей IP-адрес я должен использовать, мой домашний компьютер или мою школу?Если я использую IP-адрес моей школы, как мне узнать, что это такое?Как мне узнать, какой номер порта мне следует использовать?Должен ли номер порта для моего клиента и сервера совпадать?

Ответы [ 3 ]

2 голосов
/ 01 мая 2011
  1. Обычно вы хотите использовать AF_INET - тогда вы сможете общаться между несколькими компьютерами позже.
  2. Использовать 127.0.0.1; это означает "этот компьютер".
  3. Составьте номер порта и используйте его для обоих. Обычно вам нужно выбрать что-нибудь между 1024 и 65536, эксклюзивно.
0 голосов
/ 01 мая 2011

См. здесь для множества примеров.Есть некоторые вещи, которые вы должны понимать:

  • TCP, UDP и разница между ними
  • Что такое сокет, типы сокетов (поток, датаграмма, последовательные пакеты)
  • Socket API's - BSD, POSIX, WinSock (если вы планируете программировать для Windows)
0 голосов
/ 01 мая 2011

Поскольку программы работают на школьном компьютере, вы должны использовать этот IP-адрес.
Вы можете использовать команду / usr / sbin / ifconfig -a , чтобы найти ее (это адрес inet). Однако, если оба логина находятся на одном физическом компьютере (например, в моей школе, что не всегда так), вы можете просто использовать 127.0.0.1.
Вы можете использовать любой номер порта, который хотите, но выбирайте высокий (например, четыре цифры), так как для некоторых служб по умолчанию используются более низкие номера.
Номера портов для клиента и сервера не обязательно должны быть одинаковыми, но вам может быть проще запомнить, если они совпадают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...