标题:TCP编程,实现双方通信之反馈结果
服务器端:
//验证登入是否成功 客户端输入name,passWord后,用符号将其连接在一起,一次发送
//测试System.in,客户端不断获取输入,再写到流中;服务器端接收
/**
* 1.创建ServerSocket(int port)对象
* 2.在Socket上监听客户端的连接请求
* 3.阻塞、等待连接的建立
* 4.接收并处理请求信息
* 5.将处理结果返回给客户端
* 6.关闭流和Socket对象
* @author dell
*
*/
public class TestTCPServerSystemInPassWord03 {
public static void main(String[] args) throws IOException {
System.out.println("-----Server-----");
//1.创建ServerSocket(int port)对象
ServerSocket server=new ServerSocket(6666);
//2.在Socket上监听客户端的连接请求
Socket client=server.accept();
//3.阻塞、等待连接的建立
System.out.println("建立好了一次连接");
//4.接收并处理请求信息
DataInputStream is=new DataInputStream(client.getInputStream());
String str="";
// while(!(str=is.readUTF()).equals("exit")){
// System.out.println(str);
// }
String trueName="lkj";
String truePassWord="123";
String name="";
String passWord="";
str=is.readUTF();
//分割str得到name,passWord
if(str.indexOf("&")!=-1) {//str.contains("&")
String[] s=str.split("&");
for(String s2:s) {
if(s2.split("=")[0].equals("name")) {
name=s2.split("=")[1];
}else if(s2.split("=")[0].equals("passWord")) {
passWord=s2.split("=")[1];
}
}
}
//5.将处理结果返回给客户端
DataOutputStream os=new DataOutputStream(client.getOutputStream());
//返回匹配结果,写入流中
if(trueName.equals(name)&&truePassWord.equals(passWord)) {
os.writeUTF("欢迎回来主人!!!");
}else {
os.writeUTF("用户名或密码不正确");
}
//6.关闭流和Socket对象
System.out.println("接收完毕!!!");
is.close();
server.close();
}
}
客户端:
//验证登入是否成功 客户端输入name,passWord后,用符号将其连接在一起,一次发送
//测试System.in,客户端不断获取输入,再写到流中;服务器端接收
/**
* 1.创建Socket(String host,int port)对象
* 2.向服务器发送连接请求
* 3.向服务器发送服务请求
* 4.接收服务结果
* 5.关闭流和Socket对象
* @author dell
*
*/
public class TestTCPClientSystemInPassWord03 {
public static void main(String[] args) throws IOException {
System.out.println("-----Client-----");
//1.创建Socket(String host,int port)对象
//2.向服务器发送连接请求
Socket client=new Socket("localhost",6666);
//3.向服务器发送服务请求
/*
* 先使用BufferedReader,InputStreamReader读取System.in,存到String,
* 再使用DateOutputStream写入到流中【os.writeUTF(str);】
*/
BufferedReader is=new BufferedReader(new InputStreamReader(System.in));
DataOutputStream os=new DataOutputStream(client.getOutputStream());
// String str="";
// while((str=is.readLine())!=null) {//使用BufferedReader除去\r\n了
// os.writeUTF(str);
// os.flush();
// if(str.equals("exit")) {
// break;
// }
// }
String name="";
String passWord="";
System.out.print("输入账户名:");
name=is.readLine();
System.out.print("输出密码");
passWord=is.readLine();
os.writeUTF("name="+name+"&"+"passWord="+passWord);
os.flush();
//4.接收服务结果
DataInputStream dis=new DataInputStream(client.getInputStream());
String str=dis.readUTF();
System.out.println("服务器反馈的结果为: "+str);
//5.关闭流和Socket对象
System.out.println("发送完毕!!!");
os.close();
client.close();
}
}