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)
}
/**
* 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();
}
}
}
}
* 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();
}
}
}
}
}
相关文章推荐
- WEB开发中路径的问题
- Android滑动冲突--代码
- 《笨办法学Python》 第26课手记
- ITOO4.1之Memcached实践篇
- JavaSE019_反射应用之动态代理
- 保存状态的session方式
- apache2.4开启gzip无法实现304缓存的
- Stripies(POJ 1862 贪心)
- runloop概念
- 面向对象编程(五)——构造方法
- python项目之 增加博客访问量
- 抓包工具
- Spring mvc框架知识
- 身体检查 生化全套 血常规 微量元素
- poj 1182 食物链
- (好)C++ 多继承和虚继承的内存布局
- Linux — 系统启动流程
- Hibernate开发实践笔记--对象在set属性时更新了数据库问题
- Reveal常用技巧(翻译来自Reveal官网blog)
- UI_糗事百科页面