有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

接收整数序列的java服务器

我正在学习Java中的socket编程。我试图解决一个问题,包括:

  1. 具有一个服务器,该服务器在同一个服务器上接受来自一个客户端的连接 时间这部分问题解决了
  2. 现在我希望服务器接收文本中的整数序列 当socket上出现文件结束情况时将完成的格式 检测到读卡器流
  3. 我正在尝试使用DataInputStream和 DataOutputStream,因为这是迄今为止我唯一知道的事情

有人能帮忙吗?我不知道如何解决问题的第二部分

我有以下代码:

  public class Exercise{

    public static void main(String args[]) throws Exception {
        ServerSocket server= new ServerSocket(6789);
        while(true) {
            try {
                Socket aux= server.accept();
                DataInputStream dis = new DataInputStream(aux.getInputStream());
                DataOutputStream dos = new DataOutputStream(aux.getOutputStream());
                while(dis != null) {
                }
            }
            catch (EOFException e) {
                out.println("The client finish execution!");
                continue;
            }
        }
    }
}

共 (2) 个答案

  1. # 1 楼答案

    你需要定义一个数据交换协议。这就是所有网络应用程序的工作方式。客户机和服务器必须就要交换的数据的格式和顺序达成一致。你能做的最基本的事情就是按顺序发送以下内容

    开始

    1,2,3,4,5,6

    住手

    收到START的那一刻,您就知道下一个输入行是您的整数序列,您可以使用自定义逻辑解析它

    一旦你收到STOP,你就知道不会有更多的数据了,于是你停止并将回复/确认返回给客户

  2. # 2 楼答案

    在oracle网站上查看此页面http://www.oracle.com/technetwork/java/socket-140484.html#server应该包含设置和从套接字连接接收字符串数据所需的所有信息

    要处理一系列整数,将取决于格式,因此,您需要确保它们由空格或一些标准分隔符分隔,如空格或逗号(即“1 2 3 4”或“1,2,3,4”),然后使用StringTokenizer或类似的类将字符串拆分为单个整数字符串,然后使用integer进行解析。parseInt()