接收整数序列的java服务器
我正在学习Java中的socket编程。我试图解决一个问题,包括:
- 具有一个服务器,该服务器在同一个服务器上接受来自一个客户端的连接 时间这部分问题解决了李>
- 现在我希望服务器接收文本中的整数序列 当socket上出现文件结束情况时将完成的格式 检测到读卡器流李>
- 我正在尝试使用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;
}
}
}
}
# 1 楼答案
你需要定义一个数据交换协议。这就是所有网络应用程序的工作方式。客户机和服务器必须就要交换的数据的格式和顺序达成一致。你能做的最基本的事情就是按顺序发送以下内容
开始
1,2,3,4,5,6
住手
收到START的那一刻,您就知道下一个输入行是您的整数序列,您可以使用自定义逻辑解析它
一旦你收到STOP,你就知道不会有更多的数据了,于是你停止并将回复/确认返回给客户
# 2 楼答案
在oracle网站上查看此页面http://www.oracle.com/technetwork/java/socket-140484.html#server应该包含设置和从套接字连接接收字符串数据所需的所有信息
要处理一系列整数,将取决于格式,因此,您需要确保它们由空格或一些标准分隔符分隔,如空格或逗号(即“1 2 3 4”或“1,2,3,4”),然后使用StringTokenizer或类似的类将字符串拆分为单个整数字符串,然后使用integer进行解析。parseInt()