Какой язык для Socket Server - PullRequest
3 голосов
/ 01 июля 2010

Какой лучший язык и IDE для разработки сокет-сервера?Я хочу, чтобы я мог быстро выучить язык, который будет работать на уровне предприятия.Пожалуйста, предоставьте мне несколько хороших ресурсов:)
Спасибо

РЕКОМЕНДУЕМЫЕ ЯЗЫКИ
«Я знаю только языки флэш и скриптов»
• JAVA
• Cязыки и VB ++
• PHP

Я пытаюсь заставить мои Flash-анимации подключаться к старой серверной системе.ИТ-директор моей компании ушел, и я не хочу, чтобы проект получил консервы.Я готов не спать по ночам, учась до тех пор, пока смогу сделать прототип.

ЧТО Я ДЕЛАЮ 'Подключение к архаичной серверной системе'

альтернативный текст http://poizenpoprecords.com/myspace/videodnd/umlSocket.jpg

Нет временных ограничений или ограничений

Есть ли какие-либо языки, которые уже используются на вашем предприятии?
C иИспользуются VB

Насколько сложным должен быть ваш сокет-сервер?
Не сложно, но имеет хорошую библиотеку и основу для дальнейшего расширения

Можете ли вы использовать что-то уже существующее?
Да, но это ничего не стоит

Какова ваша цель
Обучение идоказательство концепции моя цель.Идеальное решение было бы идеальным, но иногда внедрение новой инфраструктуры занимает столько же времени и может противоречить тому, что уже есть.Я, скорее всего, пойду с языком, который смогу продолжать использовать при разработке игр.

Ответы [ 6 ]

2 голосов
/ 02 июля 2010
2 голосов
/ 01 июля 2010

Какой лучший язык и IDE для разработки сокет-серверов?

Любой язык, поддерживающий программирование сокетов (почти любой).Вопрос немного упрощенный.

Я хочу, чтобы я мог быстро выучить язык, который будет работать на уровне предприятия.

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

Вот несколько примеров того, что я имею в виду:

Python занимает мало временичтобы овладеть навыками, но я не уверен, насколько это «корпоративный уровень» (он используется НАСА, Google и несколькими другими крупными игроками, так что этого может быть достаточно).

Это также очень высокоуровня, поэтому я не удивлюсь, если вы сможете написать код для простого сервера сокетов в пределах десяти строк кода (для создания веб-сервера в python требуется всего одна строка кода).

Java и C # / C ++. Cli / VB + должны поддерживать создание сервера сокетов с относительно небольшим количеством строк кода, так как они (как и Python) уже имеютбиблиотеки, поддерживающие большую часть функциональности.

Они более многословны, чем Python, поэтому вы напишите гораздо больше кода.

Я не очень разбираюсь в PHP сказать, насколько это было бы хорошо.

C слишкомнизкий уровень, что означает, что вы, вероятно, напишите больше кода, чем упомянутые выше.Это очень мощный инструмент, но написание проекта на C займет у вас не менее недели на написание кода и неделю (возможно, еще больше) на его отладку - особенно если вы новичок в языке.

C ++ ... хорошо во всем спектре (это и высокий, и низкий уровень), но его трудно использовать правильно (в нем много причуд, а ошибки, которые вы делаете, не очевидны, пока вы не поймете, почему он разработан так, как онявляется).С ++, вероятно, потребовалось бы больше, чем С, чтобы изучить и использовать правильно.

Пожалуйста, предоставьте мне несколько хороших ресурсов:) +

Я бы сказал, но ваш вопрос слишком широк,Вот несколько вопросов, чтобы сузить его:

  • каковы ваши временные ограничения?

  • есть ли ограничения?

  • является ли какой-либо из языков, уже используемых на вашем предприятии?

  • насколько сложным должен быть ваш сокет-сервер?

  • можетвы используете что-то уже существующее?

  • какова ваша цель (вам срочно нужна функциональность сокет-сервера? вам нужно научиться программировать сокеты? вам нужно решение на основе сокет-сервера)к вашей проблеме?)

Редактировать :

Учитывая ваши ответы, я бы рекомендовал использовать C ++ и boost (boost :: asio конкретно).Вот мои рассуждения:

Я, скорее всего, пойду с языком, который смогу продолжать использовать в разработке игр.

C ++ - это язык, выбранный для разработки игр.У него много подводных камней, но преимущества, кажется, перевешивают это.

Если вы будете использовать хорошие методы C ++, вы избежите большинства ошибок и разумно справитесь с теми, которые вы не можете избежать.(Если вам нужен список хороших практик или распространенных ошибок C ++, задайте новый вопрос :)).

это ничего не может стоить

Ни C ++, ни повышение стоимостичто угодно.

Для IDE вы можете загрузить Microsoft Visual Studio 2010 Express (бесплатно) для Windows и использовать Eclipse + CDT или Code :: Blocks для других платформ (я думаю, что они доступны и для Windows).

Если возможно, также используйте распределенную систему контроля версий (например, Git или Mercurial ).Они избавят вас от головной боли и упростят управление кодом.

Моя цель - изучение и подтверждение концепции.

Вы многому научитесь: D.

Вот несколько ресурсов, с которых можно начать:

Для C ++ посмотрите на Мышление на C ++ (бесплатно) и (если вы можете взять их в руки) Эффективный C ++ , Более эффективный C ++ и, возможно, Эффективный STL .

Для наддува достаточно документации для надстройки (также бесплатно), как только вы начнете работать с C ++.

В частности, обратите внимание на примеры boost :: asio . Они предлагают полный исходный код для различных серверов (HTTP-серверов, эхо-серверов и т. Д.).

boost :: asio - это уже внедренный фреймворк, но изучение C ++ и расширенных библиотек на его основе может потребовать крутой кривой обучения с вашей стороны.

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

Почему даже требуется сокет TCP / IP? Я полагаю, что на каком-то уровне это так, но не будет ли проще использовать что-то вроде JMS для абстрагирования уровня сокетов в нечто более управляемое? Это направление, в котором я бы пошел.

Полагаю, это делает ответ Java. Хотя я не знаю ни одного имени, я уверен, что в C ++ также есть хорошие системы брокеров сообщений. Дело не в языке, а в библиотеке! : -)

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

В некоторых случаях мне приходилось кодировать серверы сокетов, и Java выполнял эту работу (я не знаю Python достаточно, чтобы иметь мнение по этому поводу.) Но я бы действительно начал с проверки, действительно ли необходимо идтина уровне сокетов и tcp / ip для связи с приложением Flash.

Java предлагает то, что вам нужно:

  • Бесплатные инструменты и хорошие библиотеки: Eclipse IDE, Springи Джакартские библиотеки.
  • Хорошая работа в сети, многопоточность и поддержка MySql.
  • Легче и быстрее учиться, чем на C или C ++.Java - хорошая отправная точка, если вы хотите перейти к C ++ позже, оба языка используются в игровой индустрии.
  • Поддержка нескольких платформ, вам не нужно кодировать для конкретного O / S.
0 голосов
/ 01 июля 2010

Если все, что вам нужно, - это получить данные из флэш-приложения, и у вас нет целей высокой производительности или масштабируемости, вы, вероятно, можете просто использовать URLLoader во флэш-памяти и что-то вроде PHP на сервере. сервер сокетов , вероятно, даже не требуется.

Если вы хотите получить более глубокое понимание сокетов, хотя я предлагаю вам изучить некоторые C. Сокеты обычно реализуются в ядре ОС, которое предоставляет их.через набор низкоуровневого системного вызова.

Из-за этого подробные объяснения того, как сокеты работают и взаимодействуют с другими элементами системы (такими как опрос дескрипторов, процесс, потоки и планирование), имеют тенденцию иметь делос C.

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

Лучшая ставка на корпоративном уровне - C #, но, учитывая ваш текущий технологический стек Flash с MySQL, вам может быть лучше с Python или Java.

Избегайте PHP как чумы.

Самое большое место, где C # принесет вам пользу, - это коммуникация ... Windows Communication Foundation (WCF) - это лучшая библиотека для сетевого программирования высокого уровня прямо сейчас. Visual Studio также является лучшей IDE, IMO. Однако C # и .NET плохо работают с MySql, поэтому он может не подойти для вашего стека.

Если вы идете по маршруту Java или Python, оба имеют приличную IDE в форме Eclipse.

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