服务器 *** 作系统有哪些??大家推荐几个、、

服务器 *** 作系统有哪些??大家推荐几个、、,第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 + "}";
}
}

原来象我一样的朋友不少啊,我原来就这样做了,但是后来因为带宽的问题放弃了,自己做服务器当然是方便多,也好管理。
上面的说的很对,动态解析用花生壳软件就很好,这个软件我现在的网站上也有,你可以去看一下,有时间也可以和我QQ交流啊。
花生壳是完全免费的桌面式域名管理和动态域名解析(DDNS)等功能为一体的客户端软件。
花生壳客户端向用户提供全方位的桌面式域名管理以及动态域名解析服务。用户无需通过IE浏览器,直接通过客户端使用>>

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

原文地址: http://outofmemory.cn/zz/13255174.html

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

发表评论

登录后才能评论

评论列表(0条)

保存