我正在学习Java中的套接字编程。我正在尝试解决以下问题:
有人可以帮忙吗?我不知道如何解决问题的第二部分。
我有以下代码:
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;
}
}
}
}
答案 0 :(得分:1)
您需要定义数据交换协议。这就是所有网络应用程序的工作方式。客户端和服务器必须就将要交换的数据的FORMAT和SEQUENCE达成一致。您可以做的最基本的事情是按顺序发送以下内容
START
1,2,3,4,5,6-
STOP
当您收到START时,您知道下一个输入行是您可以使用自定义逻辑解析的整数序列。
一旦收到STOP,您就会知道不会有更多数据,您停止并将响应/确认返回给客户。
答案 1 :(得分:0)
从oracle网站http://www.oracle.com/technetwork/java/socket-140484.html#server查看此页面应该具有设置和从套接字连接接收字符串数据所需的所有信息。
要处理整数序列,取决于格式,因此您需要确保它们与空格或某些标准分隔符(如空格或逗号)分隔(即“1 2 3 4”或“1” ,2,3,4“)然后使用StringTokenizer或类似的类将String分解为单个整数字符串,然后使用Integer.parseInt()解析;