JAVA学习笔记(六十)- 网络编程登录实例
2015-04-06 09:10
363 查看
客户端
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; /* * 客户端 */ public class LoginClient { public static void main(String[] args) { try { //1.创建客户端Socket,指定服务器地址和端口号,同时建立连接 Socket socket=new Socket("localhost", 8888); //2.获取输出流,向服务器发送信息 OutputStream os=socket.getOutputStream(); //PrintWriter pw=new PrintWriter(os);//封装为打印流 ObjectOutputStream oos=new ObjectOutputStream(os); User user=new User("admin", "123"); oos.writeObject(user);//序列化对象 socket.shutdownOutput();//关闭当前输出流 //3.获取输入流,并读取服务器端的响应信息 InputStream is=socket.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(is)); String reply=br.readLine(); while(reply!=null){ System.out.println("我是客户端,服务器说:"+reply); reply=br.readLine(); } socket.shutdownInput(); //4.关闭资源 br.close(); is.close(); oos.close(); os.close(); socket.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
标题
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /* * 服务器端 */ public class LoginServer { public static void main(String[] args) { try { ServerSocket serverSocket=new ServerSocket(8888); System.out.println("******服务器即将启动,等待客户端的连接"); int count=0;//统计客户端数量 // 循环监听等待客户端的连接 while(true){ Socket socket=serverSocket.accept(); //创建一个新的线程 ServerThread thread=new ServerThread(socket); thread.start();//启动线程 count++; System.out.println("客户端数量:"+count); System.out.println("客户端IP:"+socket.getInetAddress().getHostAddress()); } } catch (IOException e) { e.printStackTrace(); } } }
服务器端线程处理类
import java.io.IOException; import java.io.InputStream; import java.io.ObjectInputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket; /* * 服务器端线程处理类 */ public class ServerThread extends Thread { //与本线程相关的Socket Socket socket=null; public ServerThread(Socket socket){ this.socket=socket; } //线程执行的操作 @Override public void run() { InputStream is=null; ObjectInputStream ois=null; OutputStream os=null; PrintWriter pw=null; try { is=socket.getInputStream();//字节流 ois=new ObjectInputStream(is); User user=(User) ois.readObject(); System.out.println("用户名:"+user.getUsername()); System.out.println("密码:"+user.getPassword()); socket.shutdownInput();//关闭当前输入流 os=socket.getOutputStream(); pw=new PrintWriter(os); pw.println("欢迎您!"); pw.flush(); socket.shutdownOutput(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } finally{ try { if(pw!=null) pw.close(); if(os!=null) os.close(); if(ois!=null) ois.close(); if(is!=null) is.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } }
标题
import java.io.Serializable; /* * 实体类User */ public class User implements Serializable { private static final long serialVersionUID = 6682618522883563864L; private int id; private String username; private String password; public User() { super(); } public User(String username, String password) { super(); this.username = username; this.password = password; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public static long getSerialversionuid() { return serialVersionUID; } }
相关文章推荐
- JAVA学习笔记- 网络编程登录实例
- Java学习笔记之网络编程基础-通过URL获取HTML页面
- java网络编程学习笔记
- Java网络编程---I/O部分学习笔记整理
- 传智博客学习笔记15--JAVA网络编程
- java学习笔记------Java网络编程三
- Java学习笔记之网络编程基础-通过URL获取网络图片
- Java 学习笔记(网络编程 之 URL)
- java学习笔记--------java网络编程基础一
- java网络编程学习笔记之一(TCP/IP协议与UDP协议的区别和认识)
- 黑马程序员------java学习笔记之网络编程
- Java 网络编程 学习笔记一 基础知识
- Java 网络编程 TCP vs UDP -Java学习笔记(31)
- Java UDP 网络编程 示例 -Java学习笔记(30)
- java学习笔记------java网络编程基础二
- Java学习笔记之网络编程基础-获取本机名称
- 黑马程序员学习笔记之六(java网络编程)
- Java学习笔记之网络编程基础-通过URLConnection获取HTML页面
- java网络编程学习笔记
- java学习笔记-----java网络编程四