【求助 几十行的socket编程作业】
服务器端:
package 计算机网络_socket通信_题2;
public class Server2 {
public static void main(String[] args) throws IOException, InterruptedException {
ServerSocket server2=null;
server2=new ServerSocket(2010);
Socket socket=null;
socket=server2.accept();
PrintWriter os=new PrintWriter(socket.getOutputStream());
BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//下面这段传输文件列表 用了File类的list()函数
File f=new File("C:\\Users\\Administrator\\Desktop\\杂物\\joytokey file");
String a="下面是文件列表\n";
os.println(a);
os.flush();
String [] s=f.list();
int j=1;
for(String i:s)
{
os.println(""+j+"."+i);
os.flush();
j++;
}
os.println("请输入需要传输的文件的序号:");
os.flush();
//下面这段负责接受客户端发来的序号
int x=0;
String y;
while((y=in.readLine())!=null)
{
x=Integer.parseInt(y);
}
System.out.println(x);
os.close();
socket.close();
server2.close();
}
}
客户端:
package 计算机网络_socket通信_题2;
public class Client2 {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket client2=new Socket("127.0.0.1",2010);
PrintWriter os=new PrintWriter(client2.getOutputStream());
BufferedReader is=new BufferedReader(new InputStreamReader(client2.getInputStream()));
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
//输出从服务器端发来的文件列表
String b;
while((b=is.readLine())!=null){
System.out.println(b);
}
//接收从键盘的输入(文件序号),发送给服务器端
String a=in.readLine();
os.println(a);
os.flush();
is.close();
client2.close();
}
}