您的位置:首页 > 其它

udp协议简单实现登录功能

2016-01-28 21:10 204 查看
/**

* 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();

}
}
}
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: