/**
*客户端
**/
import java.io.*;
import java.net.Socket;
import java.util.Scanner;
public class Clients {
public static void main(String[] args) {
Socket socket = null;
InputStream is = null;
OutputStream os = null;
try {
socket = new Socket("localhost",8800);
is = socket.getInputStream();
os = socket.getOutputStream();
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String loginName = sc.next();
System.out.println("请输入密码:");
String passWord = sc.next();
String str = "loginName:" + loginName + "&passWord:" + passWord;
byte[] b = str.getBytes();
os.write(b);
socket.shutdownOutput();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String replay = br.readLine();
System.out.println("客户端输出:服务器回应为==>" + replay);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
is.close();
os.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
服务端
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashMap;
public class Severs {
public static void main(String[] args) {
InputStream is = null;
OutputStream os = null;
Socket socket = null;
BufferedReader br = null;
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(8800);
System.out.println("服务器已经启动!");
socket = serverSocket.accept();//用于接收数据
is = socket.getInputStream();
br = new BufferedReader(new InputStreamReader(is));
String str = br.readLine();//将读到的内容用str接受
System.out.println("我是服务器,客户端输入的消息为:" + str);
socket.shutdownInput();
HashMap<String,String> hm = new HashMap<>();
String[] strings = str.split("&");
for (String s:strings) {
String[] st = s.split(":");
hm.put(st[0], st[1]);
}
String replay = "登录失败!";
if (hm.get("loginName").equals("tom") && hm.get("passWord").equals("123456")){
replay = "登录成功!";
}
os = socket.getOutputStream();
os.write(replay.getBytes());
socket.shutdownOutput();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
os.close();
is.close();
br.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}