开发步骤
实例:
Sever:
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
import java.util.Properties;
public class Sever {
public static void main(String[] args) {
try {
ServerSocket sever=new ServerSocket(8888);
//接入客户端
Socket client1=sever.accept();
//获得请求对象
BufferedReader request=new BufferedReader(new InputStreamReader(client1.getInputStream(),"UTF-8"));
//接收客户端请求数据
String userinfo=request.readLine();
String result=SaveUserInfo(userinfo);
//获得响应对象
PrintWriter response=new PrintWriter(new OutputStreamWriter(client1.getOutputStream(),"UTF-8"));
//将操作结果相应给客户端
response.println(result);
response.flush();
}catch (IOException e){
e.printStackTrace();
}
}
private static String SaveUserInfo(String userinfo) {
try {
//创建流执行一个properities而文件
PrintWriter out=new PrintWriter(new OutputStreamWriter(new FileOutputStream("information\\userinfo.properties",true),"GBK"));
//解析出id的值作为=前的key、直接将userInof代表的字符串作为=后面的value
String id=getId(userinfo);
//保存用户信息到文件中去
Properties prop=new Properties();
prop.setProperty(id,userinfo);
prop.store(out,"");
System.out.println("保存完毕");
System.out.println(id);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "Successfully";
}
private static String getId(String userinfo) {
int startindex=userinfo.indexOf(":")+1;
int endindex=userinfo.indexOf(",");
return userinfo.substring(startindex,endindex);
}
}
Client:
import java.io.*;
import java.net.Socket;
import java.util.Scanner;
public class Client {
private static final Scanner input=new Scanner(System.in);
public static void main(String[] args) throws IOException {
Socket client=new Socket("192.168.1.8",8888);
try {
//收集信息
String userinfo=registMenu();
System.out.println(userinfo);
//获取请求对象
PrintWriter request=new PrintWriter(new OutputStreamWriter(client.getOutputStream(),"UTF-8"));
//向服务器发送请求
request.println(userinfo);
request.flush();
//获得响应结果
BufferedReader response=new BufferedReader(new InputStreamReader(client.getInputStream(),"UTF-8"));
String result=response.readLine();
System.out.println(result);
}catch (IOException e){
e.printStackTrace();
}finally {
client.close();
}
}
/**
*收集用户信息
* @return 整理后的字符串
*/
public static String registMenu(){
System.out.println("请输入学号:");
String id=input.next();
System.out.println("请输入密码:");
String pwd=input.next();
System.out.println("请输入名字:");
String name=input.next();
System.out.println("请输入性别:");
String sex=input.next();
System.out.println("请输入年龄:");
Integer age=input.nextInt();
System.out.println("请输入成绩:");
Double score=input.nextDouble();
//整理(约定---》协议)
return toJASN(id,pwd,name,sex,age,score);
}
/**
* 将零三数据整成一个有格式的字符串
* @param id
* @param pwd
* @param name
* @param sex
* @param age
* @param score
* @return
*/
public static String toJASN(String id, String pwd, String name, String sex, Integer age, Double score){
String json="{id:"+id+",pwd:"+pwd+",name:"+name+",sex:"+sex+",age:"+age+",score:"+score+"}";
return json;
}
}