Программирование видео чата - PullRequest
2 голосов
/ 21 июля 2010

Привет всем гуру сетевого программирования.Я чувствую желание написать свою собственную систему видеочата на основе протокола RTMP.Конечно, я немного знаю C, но пока не знаю сетевого программирования, я только изучаю его.И я хотел бы спросить, где именно я должен «копать», как спроектировать мою программу (для * nix), чтобы она обрабатывала много соединений.И я хотел бы знать, сколько времени мне понадобится, чтобы реализовать такую ​​программу?Я знаю, возможно, это глупый вопрос, но я хочу знать о опыте других программистов: сколько времени они потратили, чтобы стать хорошим сетевым программистом или написать что-то подобное.Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 21 июля 2010

Вот три вещи, о которых вам нужно прочитать:

  • Sockets (man socket)
  • select -команда (man select)
  • Протокол RTMP.(Википедия, кажется, говорит, что есть три варианта)

Кроме того, вам нужно знать некоторые детали видео-чата.Но это хорошая отправная точка.

В Google вы можете найти несколько дополнительных примеров программирования сокетов.Хотя, возможно, будет лучше, если вы начнете шаг за шагом.

Сначала создайте серверное приложение, например, такое:

sock = socket(AF_INET, SOCK_STREAM)
sock.bind((hostname, port))
sock.listen(5)
client, address = sock.accept()
while(true){
    print client.recv(4096)
}

И клиентское приложение, например:

sock = socket(AF_INET, SOCK_STREAM)
sock.connect((hostname, port))
client.send("just some text to show out\n")

внимательно прочитайте документацию select, recv и send перед использованием !!!

0 голосов
/ 23 июля 2010

ОК, я приму это во внимание.Я прошел по некоторым форумам и увидел там дискуссии об использовании fork или thread для серверов Unix.Так что, по вашему мнению, лучше (для производительности) использовать?

...