JAVA网络编程基础应用练习,200分! 大家帮我做一下。 谢谢了 就是我服务端有一些学生信息。

JAVA网络编程基础应用练习,200分! 大家帮我做一下。 谢谢了 就是我服务端有一些学生信息。,第1张

一下代码仅作参考    swing界面使用NetBeans生成的

ClientViewjava见附件

Clientjava

package baiduzhidao;
import javaioDataInputStream;
import javaioDataOutputStream;
import javaioIOException;
import javanetSocket;
public class Client {
private ClientView clientView;
private Socket socket;
private DataInputStream dis;
private DataOutputStream dos;
public Client() {
clientView = new ClientView(this);
clientViewsetVisible(true);
}
public ClientView getClientView() {
return clientView;
}
public void setClientView(ClientView clientView) {
thisclientView = clientView;
}
public static void main(String[] args) {
new Client();
}
public Socket getSocket() {
return socket;
}
public void setSocket(Socket socket) {
thissocket = socket;
}
/
  连接服务器
  @return 成功返回true  否则返回false
 /
public boolean connectServer() {
try {
socket = new Socket("127001", 8853);
dis = new DataInputStream(socketgetInputStream());
dos = new DataOutputStream(socketgetOutputStream());
} catch (IOException e) {
eprintStackTrace();
return false;
}
return true;
}
/
  从服务端读取消息
  @return 成功返回对应的字符串  否则返回null
 /
public String getMessage() {
String result;
try {
result = disreadUTF();
} catch (IOException e) {
eprintStackTrace();
return null;
}
return result;
}
/
  发送消息到服务端
  @param message
  @return
 /
public boolean sendMessage(String message) {
try {
doswriteUTF(message);
} catch (IOException e) {
eprintStackTrace();
return false;
}
return true;
}
/
  把字符串解码成学生
  
  @param s
  @return
 /
public Student deCode(String s) {
String[] ss = ssplit(",");
Student student = new Student(IntegerparseInt(ss[0]), ss[1], IntegerparseInt(ss[2]), ss[3], ss[4]);
return student;
}
}

Serverjava

package baiduzhidao;
import javaioDataInputStream;
import javaioDataOutputStream;
import javaioIOException;
import javanetServerSocket;
import javanetSocket;
import javautilCollection;
import javautilHashMap;
import javautilIterator;
import javautilMap;
public class Server {
private int port;
private String ip;
private ServerSocket serverSocket;
private Socket socket;
private DataInputStream dis;
private DataOutputStream dos;
private Map<Integer, Student> studentMap;
/
  下一个新学生的学号
 /
private static int nextId = 101;
public Server(int port) throws IOException {
thisport = port;
serverSocket = new ServerSocket(port);
studentMap = new HashMap<>();
studentMapput(101, new Student(101, "吴冰", 25, "男", "04软件3班"));
studentMapput(102, new Student(102, "曾小梅", 21, "女", "01软件4班"));
studentMapput(103, new Student(103, "廖蒋龙", 22, "男", "01软件1班"));
studentMapput(104, new Student(104, "李世强", 24, "男", "04软件2班"));
studentMapput(105, new Student(105, "曹鹏", 20, "男", "01软件2班"));
studentMapput(106, new Student(106, "卢刚", 23, "男", "01软件3班"));
studentMapput(107, new Student(107, "吴伟坚", 20, "男", "04软件3班"));
nextId += studentMapsize();
}
public int getPort() {
return port;
}
public void setPort(int port) {
thisport = port;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
thisip = ip;
}
public ServerSocket getServerSocket() {
return serverSocket;
}
public void setServerSocket(ServerSocket serverSocket) {
thisserverSocket = serverSocket;
}
public Map<Integer, Student> getStudentMap() {
return studentMap;
}
public void setStudentMap(Map<Integer, Student> studentMap) {
thisstudentMap = studentMap;
}
public Socket getSocket() {
return socket;
}
public void setSocket(Socket socket) {
thissocket = socket;
}
public DataInputStream getDis() {
return dis;
}
public void setDis(DataInputStream dis) {
thisdis = dis;
}
public DataOutputStream getDos() {
return dos;
}
public void setDos(DataOutputStream dos) {
thisdos = dos;
}
public Socket accept() throws IOException {
socket = serverSocketaccept();
Systemoutprintln("客户端" + socketgetRemoteSocketAddress() + "连接上来了");
dis = new DataInputStream(socketgetInputStream());
dos = new DataOutputStream(socketgetOutputStream());
return socket;
}
public String readUTF() throws IOException {
return disreadUTF();
}
public boolean sendMessage(String message) {
try {
doswriteUTF(message);
} catch (IOException e) {
eprintStackTrace();
return false;
}
return true;
}
public static void main(String[] args) {
Server server;
try {
server = new Server(8853);
serveraccept();
String message = "";
while (!messageequals("quit")) {
try {
message = serverreadUTF();
Systemoutprintln(message);
} catch (IOException e) {
serverclose();
// eprintStackTrace();
Systemoutprintln("接收客户端命令时出错,客户端可能已经关闭");
break;
}
serverdoCommond(message);
}
} catch (IOException e) {
eprintStackTrace();
Systemexit(-1);
}
}
public void close() {
try {
if (dis != null) {
disclose();
}
if (dos != null) {
dosclose();
}
if (socket != null) {
socketclose();
}
if (serverSocket != null) {
serverSocketclose();
}
} catch (IOException e) {
eprintStackTrace();
}
}
/
  服务端与客户端的交互处理方法
  
  @param message
  @return
 /
public boolean doCommond(String message) {
if (messagestartsWith("getAll")) {
/
  查询所有学生
 /
String result = "";
Collection<Student> students = studentMapvalues();
Iterator<Student> studentIte = studentsiterator();
while (studentItehasNext()) {
result += studentItenext()coding();
}
return sendMessage("true:" + result);
} else if (messagestartsWith("getStu:id=")) {
/
  按学号查找
 /
int id;
try {
id = IntegerparseInt(messagesubstring(10));
} catch (NumberFormatException e) {
sendMessage("false:参数不合法");
eprintStackTrace();
return false;
}
Student student = studentMapget(id);
if (student == null) {
sendMessage("false:不存在此学生");
return false;
} else {
sendMessage("true:" + studentcoding());
}
return true;
} else if (messagestartsWith("addStu:{")) {
/
  添加学生信息
 /
String stuMessage = messagesubstring(messageindexOf("{")+1, messageindexOf("}"));
Student student = deCode(stuMessage);
studentsetId(nextId);
nextId++;
studentMapput(studentgetId(), student);
String result = "";
Collection<Student> students = studentMapvalues();
Iterator<Student> studentIte = studentsiterator();
while (studentItehasNext()) {
result += studentItenext()coding();
}
return sendMessage("true:" + result);
} else if (messagestartsWith("updateStu:{")) {
/
  更新学生信息
 /
String stuMessage = messagesubstring(messageindexOf("{") + 1, messageindexOf("}"));
Student student = deCode(stuMessage);
if (studentMapget(studentgetId()) == null) {
sendMessage("false:不存在该学号");
return false;
}
studentMapput(studentgetId(), student);
sendMessage("true");
return true;
} else {
Systemoutprintln("没有对应的命令");
return false;
}
}
/
  把字符串解码生学生类
  
  @param s
  @return
 /
public Student deCode(String s) {
String[] ss = ssplit(",");
Student student = new Student(IntegerparseInt(ss[0]), ss[1], IntegerparseInt(ss[2]), ss[3], ss[4]);
return student;
}
}
class Student {
private int id;
private String name;
private int age;
private String sex;
private String className;
public Student(int id, String name, int age, String sex, String className) {
super();
thisid = id;
thisname = name;
thisage = age;
thissex = sex;
thisclassName = className;
}
public int getId() {
return id;
}
public void setId(int id) {
thisid = id;
}
public String getName() {
return name;
}
public void setName(String name) {
thisname = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
thisage = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
thissex = sex;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
thisclassName = className;
}
@Override
public String toString() {
return "{" + id + "," + name + "," + age + "," + sex + "," + className + "}";
}
/
  编码方式
  
  @return
 /
public String coding() {
return "{" + id + "," + name + "," + age + "," + sex + "," + className + "}";
}
}

宝德服务器12年底以前的很少有写这个SN编号的,如果是托管在机房的,可以让机房的网管帮忙看下,就贴在机器的后面,靠近显示器VGA接口旁边。这个没写的话默认都是1234567890的。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13508309.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-21
下一篇 2023-08-21

发表评论

登录后才能评论

评论列表(0条)

保存