udp协议简单实现登录功能

/**
* Description: 客户端

* Copyright (c) , 2016, Jansonxu

* This program is protected by copyright laws.

* Program Name:Client.java

* Date: 2016年1月28日
*
* @author 李阳
* @version : 1.0
*/
package LowerCodeForChat;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
//1 构建一条客户端到网络的通路 PrintWriter
//2 构建一条网络到客户端的通路(BufferedReader)

    //3 构建客户端控制台到内存 (BufferedReader)
    //4 通过循环体 模拟与服务器回话
    //循环体
    // 从控制台读取 要给服务器说的话
    // 将信息传递给服务器
    // 读取服务器的信息并显示
    Socket client=null;
    BufferedReader brToServer=null;
    try {
        client=new Socket("127.0.0.1",7777);
        PrintWriter pw =new PrintWriter(client.getOutputStream(),true);
        BufferedReader br=new BufferedReader(new InputStreamReader(client.getInputStream()));
        brToServer=new BufferedReader(new InputStreamReader(System.in));
        while(true) {
            System.out.println("客户端对服务器说");
            String info=brToServer.readLine();
            //System.out.println(info);

            pw.println(info);

            System.out.print("服务器对客户端说:");
            String info1=br.readLine();
            System.out.println(info1);
            if("exit".equals(info1)){
                break;
            }
        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally{
        if(client!=null){
            try {
                client.close();
            } catch (IOException e) {
                e.printStackTrace();
            }if(brToServer!=null){
                try {
                    brToServer.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    } 
}

}

/**
* Description: 服务器

* Copyright (c) , 2016, Jansonxu

* This program is protected by copyright laws.

* Program Name:TalkServer.java

* Date: 2016年1月28日
*
* @author 李阳
* @version : 1.0
*/
package LowerCodeForChat;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class TalkServer {
public static void main(String[] args) {
ServerSocket server=null;
BufferedReader toClientReader=null;
try {
// 1 服务器实例的构建
server=new ServerSocket(7777);
//获得来自客户端的实例 的对象
Socket client=server.accept();
// 2构建网络到服务器的通过 (通过网络字节输入流 封装成 带缓存的字符输入流)
BufferedReader br=new BufferedReader(new InputStreamReader(client.getInputStream()));
// 3构建服务器端到客户端 或 网络的通路(通过网络字节输出流 封装了打印字符输出流)
PrintWriter pw=new PrintWriter(new OutputStreamWriter(client.getOutputStream()),true);
// 4 服务器端控制台 到服务器端内存
toClientReader=new BufferedReader(new InputStreamReader(System.in));
// 5 读取客户端信息
System.out.println(“来自客户端的信息是”);
String info=br.readLine();//读取来 就是String
System.out.println(info);
System.out.println(“服务器要对客户端说”);
// 6知道服务器 exit
String info1=”“;//服务器会阻塞 读到 内存中 再给变量
while(!”exit”.equals(info1=toClientReader.readLine())){ //每次都要发过去
pw.println(info1);// 此处一定 要 println 表示服务器这句话 说完,客户端那边就嫩readline 一行的内容,否则客户端
// 来自客户端的信息是
//就会阻塞下去 因为客户端不知道你这一行 说完了吗
//服务器 读取来自客户端的话语
System.out.print(“来自客户端的信息是”);
String info2=br.readLine();//读取来 就是String
System.out.println(info2);
System.out.print(“服务器对客户端说:”);
}
pw.println(info1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(toClientReader!=null){
try {
toClientReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}if(server!=null){
try {
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值