2012-06-18 68 views
2

我想用Java创建一个简单的局域网会议聊天式信使,但我有不知道从哪里开始
它必须具有以下特点:
创建一个简单的局域网信使

  • 没有永久的用户名:用户必须能够每次他加入的时间来输入一个用户名,但应该有一个记得我的选择的情况下,他使用它经常
  • 简单与所有在线显示在右侧的用户和聊天消息在中心聊天室界面
  • 私人聊天服务和块选项
  • 想要现成的代码,我希望有人给我解释从哪里开始,如何去做以及我应该知道的事情(比如,文本b牛输入用户名和东西)
    试想它作为一个建筑是一个信使,允许所有的员工虽然你的问题是相当模糊的相互

    +2

    您可以从Google开始!这里有一个简单的客户端/服务器示例http://systembash.com/content/a-simple-java-tcp-server-and-tcp-client/ – hovanessyan

    回答

    5

    聊天你似乎有基础知识(插座和所有这些)到位。我建议你首先阅读Oracle网站上的All About SocketsAll About Datagrams Java课程以开始。您可能想要消化的第二课的主要内容是关于广播的部分(用于自动服务器检测)。

    下面是我会去实施的高级别:

    • 实现包含在一个可执行服务器和客户端功能的应用程序。
    • 当应用程序启动时,如果没有检测到其他服务器(由用户自动或指定)运行服务器。
    • 始终运行客户端。这意味着,没有专用服务器将被用作其中一个客户端充当服务器。每个客户端连接到服务器(包括与服务器在同一台计算机上运行的客户端)。

    显然有很多方法来制作这种应用程序。我并不是说我描述的方式是最好的。但是,它可能适用于您描述的用例,并且其实现非常简单。

    3

    听起来像你需要一个服务器应用程序和每个用户的客户端应用程序。他们将通过套接字进行通信。服务器将打开一个ServerSocket,客户端将创建Socket,并在他们想聊天时连接到服务器。

    服务器需要能够接受来自客户端的连接。服务器将保存所有的全局细节,比如什么样的聊天室存在,谁在哪等。基本行为是当聊天室中有几个人(客户)时,一个客户端会说些什么,这是发送的通过套接字连接到服务器。服务器拥有聊天室中所有客户端(套接字)的列表,并将消息发送给每个客户端(套接字)。

    最后,您需要知道服务器必须是多线程的,并且可能需要为每个连接的客户端套接字创建一个新线程。

    +0

    端口号怎么样?指导请:) –

    +0

    @FasihKhatib港口号码是你自己决定的。您可以从1024以上的端口中选择。您应该尽量避免常见应用程序使用的端口。我通常使用高端口号,因为碰撞不太可能发生。 – Kallja

    1

    既然你不知道是否有将是实现这一目的的服务器或没有,也许,除了先前的响应,这将是对你有意思的下一个环节:

    http://docs.oracle.com/javase/tutorial/networking/datagrams/broadcasting.html

    块选项可以实现保存IP列表并忽略来自它们的消息。

    你必须考虑摆动教程以及所以你可以看到你是如何创建的窗口,文本框,文本域,按钮等,这样你就可以创建你的接口:

    http://docs.oracle.com/javase/tutorial/uiswing/

    例如,您可以使用属性文件很容易地保存用户,但是如果您提出这类问题,也许您必须从​​头开始学习java。