根据要求编写java代码,急求,答案正确加100分!求高手!

1、使用socket网络编程技术,创建服务器端和客户端。2、创建Student类,设置属性stuName,stuAge,stuGender,stuClassName。创建... 1、 使用socket网络编程技术,创建服务器端和客户端。
2、 创建Student类,设置属性stuName,stuAge,stuGender,stuClassName。创建Student.xml用户保存学员姓名,学员年龄,学员性别,学员所在班级
3、 客户端发送查询请求,客户端从键盘输入查询单个学员还是全体学员,通过scoket将查询信息传递给服务器端。
4、 查询全体学员信息,服务器端判断查询请求,服务器端读取Student.xml文件,按照客户端提交的查询请求返回全体学员信息给客户端。客户端在控制台打印出全体学员信息。
5、 查询单个学员信息,客户端从键盘输入要查找的学员姓名,通过socket传递给服务器端,由服务器端读取学员姓名,在Student.xml中找到名字相符的学员。找到则将学员信息通过socket发送给客户端,由客户端打印在控制台上。如果找不到指定学员则向客户端发送查找失败信息。
跪求高手啊,过不了就要留级了,我还有200分,正确的都给你啊,速度啊。。
展开
 我来答
天狼的夜
推荐于2016-12-06 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:107
采纳率:0%
帮助的人:78.9万
展开全部

服务器端:


package com.lqq.service;


import java.io.File;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.net.Socket;

import java.util.List;


import com.lqq.vo.QueryType;

import com.lqq.vo.Student;


public class DealClientRequest implements Runnable 

{

private Socket s = null;

private ParserXML p = new ParserXML(new File("students.xml"));

public DealClientRequest(Socket s)

{

this.s = s;

}

@Override

public void run() 

{

if(s != null)

{

try 

{

ObjectInputStream ois = new ObjectInputStream(s.getInputStream());

ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());

QueryType qt = (QueryType) ois.readObject();

if(qt.getQueryType() == 1)//单查

{

System.out.println("执行单查,查询的名字= " + qt.getQueryName());

Student stu = p.getStudent(qt.getQueryName());

oos.writeObject(stu);

}else if(qt.getQueryType() == 2)//全查

{

System.out.println("执行全查");

List<Student> list = p.getAllStudent();

for(int i = 0; i < list.size(); i++)

{

Student stu = list.get(i);

oos.writeObject(stu);

}

}

} catch (IOException e)

{

e.printStackTrace();

} catch (ClassNotFoundException e)

{

e.printStackTrace();

}

}

}

}

*************************

package com.lqq.service;


import java.io.IOException;

import java.net.ServerSocket;

import java.net.Socket;


public class MainService

{

private ServerSocket ss;

public void startService() throws IOException

{

ss = new ServerSocket(10086);

while(true)

{

System.out.println("服务器在10086等待...");

Socket s = ss.accept();

new Thread(new DealClientRequest(s)).start();

System.out.println("启动处理线程成功");

}

}

}


******************

package com.lqq.service;


import java.io.File;

import java.util.ArrayList;

import java.util.List;


import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.ParserConfigurationException;


import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.NodeList;

import org.w3c.dom.Text;


import com.lqq.vo.Student;


public class ParserXML 

{

private DocumentBuilderFactory bdf;

private DocumentBuilder db;

private Document dom;

public ParserXML(File file)

{

bdf = DocumentBuilderFactory.newInstance();

try 

{

db = bdf.newDocumentBuilder();

dom = db.parse(file);

} catch (Exception e) 

{

e.printStackTrace();

}

}

public List<Student> getAllStudent()

{

List<Student> stu = new ArrayList<Student>();

Element root = dom.getDocumentElement();

NodeList list = root.getElementsByTagName("stu");

for(int i = 0; i < list.getLength(); i++)

{

Element e = (Element) list.item(i);

Student st = new Student();

NodeList names = e.getElementsByTagName("name");

if(names.getLength() == 1)

{

Element name = (Element)names.item(0);

Text text = (Text) name.getFirstChild();

st.setStuName(text.getNodeValue());

}

NodeList sexs = e.getElementsByTagName("sex");

if(sexs.getLength() == 1)

{

Element name = (Element)sexs.item(0);

Text text = (Text) name.getFirstChild();

st.setStuGender(text.getNodeValue());

}

NodeList ages = e.getElementsByTagName("age");

if(ages.getLength() == 1)

{

Element name = (Element)ages.item(0);

Text text = (Text) name.getFirstChild();

st.setStuAge(Integer.parseInt(text.getNodeValue()));

}

NodeList classs = e.getElementsByTagName("class");

if(classs.getLength() == 1)

{

Element name = (Element)classs.item(0);

Text text = (Text) name.getFirstChild();

st.setStuClassName(text.getNodeValue());

}

stu.add(st);

}

return stu;

}

public Student getStudent(String stuName)

{

List<Student> list = this.getAllStudent();

for(int i = 0; i < list.size(); i++)

{

Student st = list.get(i);

if(st.getStuName().equals(stuName))

return st;

}

return null;

}

}


*************

package com.lqq.service;


import java.io.IOException;


public class Service 

{

public static void main(String[] args) 

{

MainService ms = new MainService();

try 

{

ms.startService();

} catch (IOException e) 

{

e.printStackTrace();

}

}

}


*******

package com.lqq.vo;


import java.io.Serializable;


public class QueryType implements Serializable

{

private static final long serialVersionUID = 8713870836629046060L;

/**

* 1 单查

* 2 全查

*/

private byte queryType;

private String queryName;

public byte getQueryType()

{

return queryType;

}

public void setQueryType(byte queryType) 

{

this.queryType = queryType;

}

public String getQueryName() 

{

return queryName;

}

public void setQueryName(String string) 

{

this.queryName = string;

}

}


************

package com.lqq.vo;


import java.io.Serializable;


public class Student implements Serializable

{

private static final long serialVersionUID = -6087251613589160139L;

private String stuName;

private int stuAge;

private String stuGender;

private String stuClassName;

@Override

public String toString() 

{

return "姓名: " + stuName + "\t性别: " + stuGender 

+ "\t年龄: " + stuAge + "\t班级: " + stuClassName;

}

public String getStuName() 

{

return stuName;

}

public void setStuName(String stuName) 

{

this.stuName = stuName;

}

public int getStuAge() 

{

return stuAge;

}

public void setStuAge(int stuAge) 

{

this.stuAge = stuAge;

}

public String getStuGender() 

{

return stuGender;

}

public void setStuGender(String stuGender) 

{

this.stuGender = stuGender;

}

public String getStuClassName() 

{

return stuClassName;

}

public void setStuClassName(String stuClassName) 

{

this.stuClassName = stuClassName;

}

}

*************

<?xml version="1.0" encoding="UTF-8"?>

 <stus>

  <stu>

  <name>令狐冲</name>

<age>12</age>

<class>华山派</class>

<sex>男</sex>

</stu>

  <stu>

  <name>东方不败</name>

<age>22</age>

<class>日月神教</class>

<sex>女</sex>

</stu>

  <stu>

  <name>岳不群</name>

<age>23</age>

<class>华山派</class>

<sex>妖</sex>

</stu>

  <stu>

  <name>风清扬</name>

<age>88</age>

<class>华山派</class>

<sex>男</sex>

</stu>

 </stus>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&


客户端:

package com.lqq.c;


import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.net.Socket;

import java.net.UnknownHostException;


import com.lqq.vo.QueryType;

import com.lqq.vo.Student;


public class AllQuery implements Runnable

{

private Socket s;

public AllQuery(QueryType qt)

{

try 

{

s = new Socket("localhost", 10086);

ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());

oos.writeObject(qt);

} catch (UnknownHostException e) 

{

e.printStackTrace();

} catch (IOException e) 

{

e.printStackTrace();

}

}

@Override

public void run() 

{

if(s != null)

{

try 

{

ObjectInputStream ois = new ObjectInputStream(s.getInputStream());

Student stu = (Student) ois.readObject();

Client c = new Client();

while(stu != null)

{

c.showStudentInfo(stu);

stu = (Student) ois.readObject();

}

} catch (IOException e) 

{

e.printStackTrace();

} catch (ClassNotFoundException e) 

{

e.printStackTrace();

}

}

}

}


**************

package com.lqq.c;


import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.net.Socket;

import java.util.Scanner;


import com.lqq.vo.QueryType;

import com.lqq.vo.Student;


public class Client 

{

public void showStudentInfo(Student stu)

{

if(stu != null)

{

System.out.println(stu);

}

}

public void showMenu()

{

System.out.println("\t\t菜  单");

System.out.println("\t1.单 查");

System.out.println("\t2.全 查");

System.out.println("\t0.退 出");

}

public String getUserInput()

{

Scanner scan = new Scanner(System.in);

System.out.println("请输入:");

return scan.next();

}

public void requestQuery(String userSelect)

{

if(userSelect != null)

{

if("1".equals(userSelect.trim()))

{

QueryType qt = new QueryType();

qt.setQueryType((byte)1);

Scanner san = new Scanner(System.in);

System.out.println("请输入查询的学生名字:");

String queryStuName = san.next();

qt.setQueryName(queryStuName);

this.executeQeury(qt);

}else if("2".equals(userSelect.trim()))

{

QueryType qt = new QueryType();

qt.setQueryType((byte)2);

this.executeQeury(qt);

}else if("0".equals(userSelect.trim()))

{

System.exit(0);

}

else

{

System.out.println("输入有误");

}

}

}

public void executeQeury(QueryType qt)

{

try 

{

Socket s = new Socket("localhost", 10086);

ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());

oos.writeObject(qt);

System.out.println("请求发送完毕");

ObjectInputStream ois = new ObjectInputStream(s.getInputStream());

if(qt.getQueryType() == 1)

{

Student stu = (Student) ois.readObject();

showStudentInfo(stu);

}else if(qt.getQueryType() == 2)

{

new Thread(new AllQuery(qt)).start();

}

} catch (IOException e) 

{

e.printStackTrace();

} catch (ClassNotFoundException e) 

{

e.printStackTrace();

}

}

public static void main(String[] args) 

{

Client client = new Client();

while(true)

{

client.showMenu();

client.requestQuery(client.getUserInput());

}

}

}

**********

package com.lqq.vo;


import java.io.Serializable;


public class QueryType implements Serializable

{

private static final long serialVersionUID = 8713870836629046060L;

/**

* 1 单查

* 2 全查

*/

private byte queryType;

private String queryName;

public byte getQueryType()

{

return queryType;

}

public void setQueryType(byte queryType) 

{

this.queryType = queryType;

}

public String getQueryName() 

{

return queryName;

}

public void setQueryName(String string) 

{

this.queryName = string;

}

}


**********

package com.lqq.vo;


import java.io.Serializable;


public class Student implements Serializable

{

private static final long serialVersionUID = -6087251613589160139L;

private String stuName;

private int stuAge;

private String stuGender;

private String stuClassName;

@Override

public String toString() 

{

return "姓名: " + stuName + "\t性别: " + stuGender 

+ "\t年龄: " + stuAge + "\t班级: " + stuClassName;

}

public String getStuName() 

{

return stuName;

}

public void setStuName(String stuName) 

{

this.stuName = stuName;

}

public int getStuAge() 

{

return stuAge;

}

public void setStuAge(int stuAge) 

{

this.stuAge = stuAge;

}

public String getStuGender() 

{

return stuGender;

}

public void setStuGender(String stuGender) 

{

this.stuGender = stuGender;

}

public String getStuClassName() 

{

return stuClassName;

}

public void setStuClassName(String stuClassName) 

{

this.stuClassName = stuClassName;

}

}


时间太紧,没有完善代码,基本功能实现了,代码没有优化,你自己再改改,希望可以帮到你

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式