TCP编程,实现双方通信之反馈结果

标题: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();
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值