Socket Server的语言是什么?

时间:2010-07-01 15:24:48

标签: java c++ mysql sockets

开发套接字服务器的最佳语言和IDE是什么? 我想要一种能够快速学习的语言 企业层面。请给我一些好的资源:) 感谢

推荐语言
'我只知道Flash和脚本语言' •JAVA
•C语言和VB ++
•PHP

我想让我的Flash动画连接到旧版 后端系统。我公司的IT主管离开了 我不希望这个项目得到罐装。我愿意熬夜 夜间学习,只要我能得到原型。

我在做什么'连接到古老的后端系统'

alt text http://poizenpoprecords.com/myspace/videodnd/umlSocket.jpg

没有时间限制或限制

您企业中是否已使用过任何语言?     使用C和VB

您的套接字服务器应该有多复杂?
    不复杂,但有一个很好的库和基础,以便以后扩展

你能使用现有的东西吗?
    是的,但它不会花费任何成本

您的目的是什么
    学习和概念证明是我的目的。出来的     盒子解决方案是理想的,但有时候实现一个新的框架     需要花费很多时间,并且可能违背已有的内容。     我可能会选择一种可以继续用于游戏开发的语言。

6 个答案:

答案 0 :(得分:2)

  

什么是最好的语言和IDE   开发套接字服务器?

任何支持套接字编程的语言(几乎任何东西)。这个问题有点过分了。

  

我想要一种能够快速学习的语言   这将在企业级别上运作。

您可以快速学习大多数语言,但要精通它们可能需要时间。更重要的是,该语言与您使用的库无关。

以下是我的意思的几个例子:

Python 几乎没有时间精通,但我不确定它是如何“企业级”的(它被美国宇航局,谷歌和其他一些主要参与者使用,所以它可能就足够了)。

它也是非常高级的,所以如果你能在十行代码中为一个简单的套接字服务器编写代码,我不会感到惊讶(它只需要一个代码行在python中创建一个Web服务器。)

Java C#/ C ++。cli / VB + 应支持使用相对较少的代码行创建套接字服务器,因为它们具有相同的代码(与python相同)已经制作的库支持大部分功能。

它们比Python更冗长,所以你会写更多的代码。

我不太了解 PHP ,以说明它有多好。

C 级别太低,这意味着您可能会比其他人提到的更多代码。它功能非常强大,但用C语言编写项目至少需要一周时间编写代码和一周(可能还有更多)来调试它 - 特别是如果你是这个语言的新手。

C ++ ......在整个频谱范围内(它既高又低)但很难正确使用(它有很多怪癖,你犯的错误直到你都不明显明白为什么它的设计原样)。 C ++可能比C更需要学习和正确使用。

  

请为我安排一些好事   资源:)+

我愿意,但你的问题太宽泛了。以下是一些缩小范围的问题:

  • 你的时间限制是什么?

  • 有任何限制吗?

  • 是您企业中已使用的任何语言吗?

  • 您的套接字服务器应该有多复杂?

  • 你能使用现有的东西吗?

  • 您的目的是什么(您是否迫切需要套接字服务器功能?您是否需要学习套接字编程?您是否需要基于套接字服务器的解决方案来解决您遇到的问题?)

    < / LI>

修改

考虑到你的答案,我建议使用C ++和boost(具体来说是boost :: asio)。这是我的理由:

  

我很可能会选择   我可以继续使用的语言   游戏开发。

C ++是游戏开发的首选语言。它有许多陷阱,但优势似乎超过了它。

如果你使用优秀的C ++实践,你将避免大多数陷阱,并合理地管理你无法避免的陷阱。 (如果你想要一个良好实践列表或常见的C ++陷阱,请提出一个新问题:))。

  

它不会花费任何成本

无论是C ++还是提升都不会带来任何成本。

对于IDE,您可以为Windows下载 Microsoft的Visual Studio 2010 Express (免费),并使用 Eclipse + CDT Code :: Blocks 对于其他平台(我认为它们也适用于Windows)。

如果可能,还要使用分布式源代码控制系统(如 Git Mercurial )。它们为您节省了很多麻烦,使代码管理变得更加容易。

  

学习和概念证明是我的   目的

你会学到很多东西:D。

以下是一些可以帮助您入门的资源:

对于C ++,请查看Thinking in C++(免费)和(如果您可以开始使用它们)Effective C++More Effective C++以及Effective STL

对于提升,一旦开始使用C ++,boost documentation(也是免费的)应该足够了。

具体来说,看看boost::asio examples。它们为各种服务器(HTTP服务器,回显服务器等)提供完整的源代码。

boost :: asio是一个已经实现的框架,但学习C ++和它上面的升级库可能需要一个陡峭的学习曲线。

答案 1 :(得分:2)

答案 2 :(得分:1)

为什么甚至需要TCP / IP套接字?我认为在某种程度上它是,但是使用像JMS这样的东西将套接字层抽象为更易于管理的东西会不会更容易?这就是我要去的方向。

我想这就是Java的答案。虽然我不知道任何名字,但我确信在C ++中也有很好的消息代理系统。这不是关于语言,而是关于图书馆! : - )

答案 3 :(得分:0)

如果您只需要从Flash应用程序接收一些数据并且您没有高性能或可伸缩性目标,那么您可以在Flash中使用URLLoader并在服务器上使用PHP之类的内容。甚至可能不需要套接字服务器

如果你想深入了解套接字,我建议你学习一些C.套接字通常在OS内核中实现,它通过一组低级系统调用来公开它们。

由于对套接字工作和与系统其他元素交互的方式(如描述符轮询,进程,线程和调度)的详细解释,往往会处理C.

答案 4 :(得分:0)

有几次我不得不编写套接字服务器代码而Java完成了这项工作(我不知道Python对它有什么意见。)但我真的要先检查它是否绝对必要在socket和tcp / ip级别处理与Flash应用程序的通信。

Java提供了您正在寻找的东西:

  • 免费工具和优秀的库:Eclipse IDE,Spring和Jakarta Librairies。
  • 良好的网络,多线程和MySql支持。
  • 比C或C ++更容易学习和学习。 Java是一个很好的起点 指出,如果你想继续前进 C ++以后,两种语言都用在了 游戏产业。
  • 多平台支持,您无需为特定操作系统编码。

答案 5 :(得分:-1)

您在企业级别上最好的选择是C#,但鉴于您目前使用MySQL的Flash技术堆栈,使用Python或Java可能会更好。

像瘟疫一样避免使用PHP。

C#将使您受益最大的地方就是通信... Windows Communication Foundation(WCF)是现在最好的高级网络编程库。 Visual Studio也是最好的IDE,IMO。但是,C#和.NET与MySql不兼容,因此它可能不适合您的堆栈。

如果你采用Java或Python路线,两者都有一个像Eclipse一样好的IDE。