现在我写了一个群聊的程序 监听的端口是10000 
如果我想对在线成员进行单聊 
双方的端口(Socket和ServerSocket)该如何确定 有没有好的方法 

解决方案 »

  1.   

    Socket和ServerSocket是基于广播通信的,
    想要单聊的话,限定发送的IP是最简单最可行的方法了...
    我以前也写过类似的聊天程序...
      

  2.   

    用户名或昵称与Socket连接一一映射
      

  3.   

    请教一下具体怎么实行 
    我现在的设计是 群聊是对一个list里的所有目标socket循环发送聊天信息 对方10000端口负责接收
    如果单聊是限定为只对一个ip进行发送 其他不变的话 那么也就是说还往10000端口发送 
    但这时候有个问题就是 群聊的ui里负责接收的BufferReader会接收这条本应该是单聊的 聊天信息并显示在群聊的JTextArea里 
    单聊的ui也会做同样的工作
    这个问题该怎么解决啊
      

  4.   

    您的意思是一个用户对应一个Socket端口?
      

  5.   

    回4楼:您的意思是一个用户对应一个Socket端口?
      

  6.   

    一个用户对应一个Socket对象,你需要维护一个映射表,当其中两个用户要要单独通信的时候,那从其中一个用户对应的Socket收到的信息就只Output到另一个用户对应的Socket