服务器端有两个程序,客户端有另一个。客户端首先将带有PrintWriter对象的整数发送到服务器,然后客户端使用相同的PrintWriter对象发送一个String。 服务器使用Scanner对象读取它们。它正确读取第一个整数,但不是读取下一个字符串,它根本不读取任何内容(或者它看起来是这样)。 服务器端代码: -
import java.io.*;
import java.util.*;
import java.net.*;
class testServer
{
public static void main(String[] args)throws Exception {
ServerSocket ss=new ServerSocket(XYZ);
Socket s=ss.accept();
Scanner sc=new Scanner(s.getInputStream());
System.out.println(sc.nextInt());
System.out.println(sc.nextLine());
}
}
客户端代码: -
import java.io.*;
import java.util.*;
import java.net.*;
class test1
{
public static void main(String[] args)throws Exception {
Socket s=new Socket("localhost",XYZ);
Scanner sc=new Scanner(s.getInputStream());
PrintWriter pw=new PrintWriter(s.getOutputStream(),true);
pw.println(5);
pw.println("Random text");
}
}
如果我在服务器端代码中使用sc.next()或sc.nextLine()而不是sc.nextInt(),那么这很好但我真的想知道sc.nextInt()的问题是什么我会喜欢一些帮助。
当前输出: - Output
XYZ是这里的任何端口号。