login和downloadImage网络编程范例
来源:互联网 发布:白银公司大数据公司 编辑:程序博客网 时间:2024/06/18 07:23
public class LoginClinet {
public static void main(String[] args) throws IOException { Socket socket = new Socket(InetAddress.getLocalHost(),9090); //获取socket的输出流对象 OutputStreamWriter socketOut = new OutputStreamWriter(socket.getOutputStream()); //获取到socket的输入流对象 BufferedReader socketReader = new BufferedReader(new InputStreamReader(socket.getInputStream())); //获取到键盘的输入流对象 BufferedReader keyReader = new BufferedReader(new InputStreamReader(System.in)); while(true){ System.out.println("请选择功能: A(登陆) B(注册)"); String option = keyReader.readLine(); if("a".equalsIgnoreCase(option)){ getInfo(socketOut, keyReader, option); //读取服务器反馈的信息 String line = socketReader.readLine(); System.out.println(line); }else if("b".equalsIgnoreCase(option)){ getInfo(socketOut, keyReader, option); //读取服务器反馈的信息 String line = socketReader.readLine(); System.out.println(line); } }}public static void getInfo(OutputStreamWriter socketOut,BufferedReader keyReader, String option) throws IOException { System.out.println("请输入用户名:"); String userName = keyReader.readLine(); System.out.println("请输入密码:"); String password = keyReader.readLine(); String info = option +" "+userName+" "+password+"\r\n"; socketOut.write(info); socketOut.flush();}
}
package cn.itcast.tcp;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Properties;
public class LoginServer extends Thread {
Socket socket;static File file = new File("F:\\users.properties");public LoginServer(Socket socket) { this.socket = socket;}static { try { if (!file.exists()) { file.createNewFile(); } } catch (IOException e) { e.printStackTrace(); }}@Overridepublic void run() {while(true){ try { // 获取socket的输入流对象 BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(socket.getInputStream())); // 获取socket的输出流对象 OutputStreamWriter socketOut = new OutputStreamWriter( socket.getOutputStream()); // 读取客户端输入的信息 String info = bufferedReader.readLine(); String[] datas = info.split(" "); // 获取到用户 的选择功能 String option = datas[0]; // 注册 String userName = datas[1]; String password = datas[2]; if ("a".equalsIgnoreCase(option)) { // 登陆 Properties properties = new Properties(); // 加载配置文件 properties.load(new FileReader(file)); if (properties.containsKey(userName)) { String tempPass = properties.getProperty(userName); if (password.equals(tempPass)) { socketOut.write("欢迎" + userName + "登陆成功\r\n"); } else { socketOut.write("密码错误\r\n"); } } else { socketOut.write("用户名不存在,请重新输入...\r\n"); } socketOut.flush(); } else if ("b".equalsIgnoreCase(option)) { // 创建一个配置文件类 Properties properties = new Properties(); //加载原来的配置文件 properties.load(new FileReader(file)); if (!properties.containsKey(userName)) { // 不存在该用户名 properties.setProperty(userName, password); // 生成一个配置文件 properties.store(new FileWriter(file), "users"); socketOut.write("注册成功..\r\n"); } else { // 存在用户名 socketOut.write("用户名已经被注册,请重新输入\r\n"); } socketOut.flush(); } } catch (Exception e) { e.printStackTrace(); } }}public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(9090); while (true) { Socket socket = serverSocket.accept(); new LoginServer(socket).start(); }}
}
package cn.itcast.tcp;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
//下载图片的客户端
public class ImageClient {
public static void main(String[] args) throws Exception{ //建立tcp的服务 Socket socket = new Socket(InetAddress.getLocalHost(),9090); //获取socket的输入流对象 InputStream inputStream = socket.getInputStream(); //获取文件的输出流对象 FileOutputStream fileOutputStream = new FileOutputStream("F:\\3.jpg"); //边读边写 byte[] buf = new byte[1024]; int length = 0 ; while((length = inputStream.read(buf))!=-1){ fileOutputStream.write(buf,0,length); } //关闭资源 fileOutputStream.close(); socket.close();}
}
package cn.itcast.tcp;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashSet;
/*
1. 编写一个服务端可以给多个客户端发送图片。 (多线程)
*/
public class ImageServer extends Thread {
Socket socket ;//使用该集合是用于存储ip地址的。static HashSet<String> ips = new HashSet<String>();public ImageServer(Socket socket) { this.socket = socket;}@Overridepublic void run() { try { //获取到socket输出流对象 OutputStream outputStream = socket.getOutputStream(); //获取图片的输入流对象 FileInputStream fileInputStream = new FileInputStream("F:\\美女\\3.jpg"); //读取图片数据,把数据写出 byte[] buf = new byte[1024]; int length = 0 ; while((length = fileInputStream.read(buf))!=-1){ outputStream.write(buf,0,length); } String ip = socket.getInetAddress().getHostAddress(); // socket.getInetAddress() 获取对方的IP地址 if(ips.add(ip)){ System.out.println("恭喜"+ip+"同学成功下载,当前下载的人数是:"+ ips.size()); } //关闭资源 fileInputStream.close(); socket.close(); }catch (IOException e) { }}public static void main(String[] args) throws IOException { //建立tcp的服务 ,并且要监听一个端口 ServerSocket serverSocket = new ServerSocket(9090); while(true){ //接受用户的链接。 Socket socket = serverSocket.accept(); new ImageServer(socket).start(); }}
}
- login和downloadImage网络编程范例
- 网络编程步骤和范例
- java网络编程URLConnection和HttpClient(下载图片范例)
- 编程规范和范例
- 编程规范和范例
- 华为编程规范和范例
- 华为编程规范和范例
- 华为编程规范和范例
- 华为编程规范和范例
- 软件编程规范和范例
- 软件编程规范和范例
- Linux网络编程:socket文件传输范例
- Windows网络编程:winsock文件传输范例
- Linux网络编程:socket文件传输范例
- 网络命令行的使用和范例(一)
- 网络命令行的使用和范例(二)
- 网络命令行的使用和范例(三)
- 网络命令行的使用和范例
- VS 项目文件 .vcxproj 文件 工程自定义宏, .vcxproj 文件组织结构
- 一个内向者的自我修炼
- hdu 1272 小希的迷宫
- Hibernate3学习笔记(一)
- Ubuntu 16.04 下快速搭建 LNMP环境
- login和downloadImage网络编程范例
- fpga LSTM
- c# controls.add 控件的使用 ,间接引用还是值引用
- 配置linux集群中的NFS文件共享服务 centos6.5Final
- 脚本
- redis cluster管理工具redis-trib.rb详解[转]
- LeetCode--Climbing Stairs
- 数学手册计算器
- LeakCanary直面项目中的内存泄露