我在 netbeans 中执行客户端服务器程序,但没有得到正确的输出。如果你们中的任何一个人都能发现代码中是否有任何错误,那将非常有帮助。
客户:
import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;
/**
*
* @author amirt
*/
public class client {
public static void main(String args[]) throws IOException
{
String fname, s1;
System.out.println("n Enter the file name");
Scanner read=new Scanner(System.in);
fname=read.next();
Socket s=new Socket("127.0.0.1",802);
Scanner cinp=new Scanner(s.getInputStream());
PrintStream cps=new PrintStream(s.getOutputStream());
cps.println(fname);
while(cinp.hasNextLine())
{
System.out.println(cinp.nextLine());
}
}
}
服务器
import java.io.IOException;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
/**
*
* @author amirt
*/
public class server {
public static void main(String args[]) throws IOException
{
String fn;
ServerSocket ss=new ServerSocket(802);
Socket s11=ss.accept();
Scanner sinp=new Scanner(s11.getInputStream());
fn=sinp.next();
Scanner sf=new Scanner(fn);
PrintStream p1=new PrintStream(s11.getOutputStream());
while(sf.hasNextLine())
{
p1.println(sf.nextLine());
}
}
}
输出: 输入文件名
回答 1.txt
回答 1.txt
PS:a1.txt包含:abcdefgh
谢谢!
在您的服务器代码中,而不是:
Scanner sf=new Scanner(fn);
你应该写:
Scanner sf=new Scanner(new File(fn));
Scanner
现在将从文件的内容而不是文件名中读取。