关键词:
1用户注册
客户单选择‘用户注册’,提示要输入用户名,密码,确认密码,校验成功后将用户
信息保存到数据库,并提示数据库注册成功,请登录
2用户登录
客户端选择‘登录以后’后,提示输入用户名和密码,验证成功则提示上传文件
,验证失败则给出提示信息,并可以重新登录
3文件上传
客户端输入上传文件的路径,并读取文件数据,通过输出流发送到服务端,服务端接受
后将上传文件保持在数据库
package com.slp.entity; import java.io.Serializable; public class File implements Serializable { /** * */ private static final long serialVersionUID = 1254554707571682105L; private int fid; private String fname; private byte[] focntent; public int getFid() { return fid; } public void setFid(int fid) { this.fid = fid; } public String getFname() { return fname; } public void setFname(String fname) { this.fname = fname; } public byte[] getFocntent() { return focntent; } public void setFocntent(byte[] focntent) { this.focntent = focntent; } public File(int fid, String fname, byte[] focntent) { this.fid = fid; this.fname = fname; this.focntent = focntent; } public File(String fname,byte[] focntent){ this.fname=fname; this.focntent=focntent; } }
package com.slp.entity; import java.io.Serializable; public class Users implements Serializable{ /** * */ private static final long serialVersionUID = -7751437846681691870L; private int id; private String username; private String 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 Users(int id, String username, String password) { super(); this.id = id; this.username = username; this.password = password; } public Users(){ } }
package com.slp.service; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import com.imooc.entity.File; import com.imooc.util.Util; public class FileService { private Connection conn = null; private PreparedStatement ptmt = null; private ResultSet rs = null; public void savefile(File file) { String sql = (" insert into tb_file(fname,focntent) values(?,?)"); try { conn=Util.getConnection(); ptmt = conn.prepareStatement(sql); ptmt.setString(1, file.getFname()); ptmt.setBytes(2, file.getFocntent()); ptmt.executeUpdate(); } catch ( SQLException e) { e.printStackTrace(); } finally{ Util.closeAll(conn, ptmt, rs); } } }
package com.slp.service; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import com.imooc.entity.Users; import com.imooc.util.Util; public class UsersService { private PreparedStatement ptmt = null; private ResultSet rs = null; private Connection conn=null; public void zhuce(Users users) { String sql = "insert into tb_user(username,password) values(?,?)"; try { conn=Util.getConnection(); ptmt = conn.prepareStatement(sql); ptmt.setString(1, users.getUsername()); ptmt.setString(2, users.getPassword()); ptmt.execute(); } catch (SQLException e) { e.printStackTrace(); } finally { Util.closeAll(conn, ptmt, rs); } } public Boolean Denglu(Users users){ String sql = "Select username,password from tb_user where username=? and password=? "; try { conn = Util.getConnection(); ptmt = conn.prepareStatement(sql); ptmt.setString(1, users.getUsername()); ptmt.setString(2, users.getPassword()); rs = ptmt.executeQuery(); if (rs.next()) { return true; } } catch (SQLException e) { e.printStackTrace(); } finally { Util.closeAll(conn, ptmt, rs); } return false; } }
package com.slp.socket; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; 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.Socket; import java.net.UnknownHostException; import java.util.Scanner; import com.imooc.entity.File; import com.imooc.entity.Users; import com.imooc.service.FileService; import com.imooc.service.UsersService; import com.imooc.util.CommendTranser; public class SocketClient { Scanner scan = new Scanner(System.in); private Socket socket = null; // Socket ss = new Socket("localhost", 1346); // Scanner scan = new Scanner(System.in); // String in = scan.next(); // InputStream is = ss.getInputStream(); // InputStreamReader isr = new InputStreamReader(is); // BufferedReader bfr=new BufferedReader(isr); // String info; // while((info=bfr.readLine())!=null){ // System.out.println("我是客户端 "+" "+"服务器说"+info); // } // // // OutputStream os = ss.getOutputStream(); // PrintWriter pw = new PrintWriter(os); // pw.write(in); public void showMainMenu() { System.out.println("******欢迎使用imooc上传器*******"); System.out.println("1 用户登录 ,2 用户注册 ,3 退出"); System.out.println("***************************"); System.out.println("请选择:》》》》》》》》"); int choose = scan.nextInt(); switch (choose) { case 1: showlogin(); break; case 2: showzhuce(); break; case 3: System.out.println("再见了,你炸了"); System.exit(0); default: System.out.println(" 输入有误"); System.exit(0); } } public void showlogin() { Users users = new Users(); System.out.println("欢迎使用登录"); CommendTranser transer = new CommendTranser(); int count = 0; while (true) { if (count >= 3) { System.out.println("您已经三次输入失败,再见"); System.exit(0); } System.out.println("请输入用户名"); users.setUsername(scan.next()); System.out.println("请输入密码"); users.setPassword(scan.next()); transer.setCmd("login"); transer.setData(users); count++; try { socket = new Socket("localhost", 1346); sendData(transer); transer=getDate(); System.out.println(" " + transer.getResult()); System.out.println("***********************"); if (transer.isFlag()) { break; } } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { clossAll(); } } showUploadFile(); } public void showzhuce() { Users users = new Users(); System.out.println("欢迎使用注册"); CommendTranser transer = new CommendTranser(); while (true) { System.out.println("请输入用户名"); users.setUsername(scan.next()); System.out.println(" 请输入密码"); users.setPassword(scan.next()); System.out.println("请再次输入密码"); String rePassword = scan.next(); if (!users.getPassword().equals(rePassword)) { System.out.println("俩次输入不一致"); System.out.println("**************"); continue; } transer.setCmd("zhuce"); transer.setData(users); try { socket = new Socket("localhost", 1346); sendData(transer); transer=getDate(); System.out.println(" " + transer.getResult()); System.out.println("***********************"); if (transer.isFlag()) { break; } } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { clossAll(); } } showUploadFile(); } public void showUploadFile() { System.out.println("请输入上传的绝对路径 如: (e://imooc//dog.jpg)"); String path = scan.next(); File file = null; FileInputStream fis = null; BufferedInputStream bis = null; String fname = path.substring(path.lastIndexOf("/") + 1); try { fis = new FileInputStream(path); byte[] focntent = new byte[fis.available()]; bis = new BufferedInputStream(fis); bis.read(focntent); file = new File(fname, focntent); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { bis.close(); } catch (IOException e) { e.printStackTrace(); } } CommendTranser transer = new CommendTranser(); transer.setCmd("uploadFile"); transer.setData(file); try { socket = new Socket("localhost", 1346); sendData(transer); transer=getDate(); System.out.println(transer.getResult()); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { clossAll(); } } public CommendTranser sendData(CommendTranser transer) { ObjectOutputStream oos=null;//对象输出流 try { oos=new ObjectOutputStream(socket.getOutputStream()); oos.writeObject(transer); return transer; } catch (IOException e) { e.printStackTrace(); } return null; } public CommendTranser getDate(){ ObjectInputStream ois =null;//对象输入流 CommendTranser transer = null; try { ois=new ObjectInputStream(socket.getInputStream()); transer= (CommendTranser) ois.readObject(); } catch (IOException e) { } catch (ClassNotFoundException e) { e.printStackTrace(); } return transer; } public void clossAll() { try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } }
package com.slp.socket; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class SocketServer { public static void main(String[] args) { try { ServerSocket serversocket=new ServerSocket(1346); Socket socket=null; System.out.println(""); while(true){ socket=serversocket.accept(); System.out.println("欢迎您.."); SocketThread thread=new SocketThread(socket); thread.start(); } } catch (IOException e) { e.printStackTrace(); } } }
package com.slp.socket; public class SocketStart { public static void main(String[] args) { SocketClient client=new SocketClient(); client.showMainMenu(); } }
package com.slp.socket; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.net.Socket; import com.imooc.entity.File; import com.imooc.entity.Users; import com.imooc.service.FileService; import com.imooc.service.UsersService; import com.imooc.util.CommendTranser; public class SocketThread extends Thread{ private Socket socket=null; private ObjectInputStream ois =null;//对象输入流 private ObjectOutputStream oos=null;//对象输出流 private UsersService us=new UsersService();//用户业务对象 private FileService fs=new FileService();//文件业务对象 //通过构造方法,初始化socket public SocketThread (Socket socket){ this.socket=socket; } @Override public void run() { try { ois=new ObjectInputStream(socket.getInputStream()); oos=new ObjectOutputStream(socket.getOutputStream()); CommendTranser transer=(CommendTranser)ois.readObject(); transer=execute(transer); oos.writeObject(transer); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public CommendTranser execute(CommendTranser transer){ String cmd =transer.getCmd(); if(cmd.equals("login")){ Users users=(Users)transer.getData(); boolean flag=us.Denglu(users); transer.setFlag(flag); if(flag){ transer.setResult("登录成功"); }else{ transer.setResult("用户名或密码不正确"); } }else if(cmd.equals("zhuce")){ Users users=(Users)transer.getData(); us.zhuce(users); boolean flag= us.Denglu(users); transer.setFlag(flag); if(flag){ transer.setResult("注册成功"); }else{ transer.setResult("注册失败,未知原因"); } }else if(cmd.equals("uploadFile")){ File file=(File)transer.getData(); fs.savefile(file); transer.setResult(" 上传成功"); } return transer; } }
package com.slp.util; import java.io.Serializable; public class CommendTranser implements Serializable { private static final long serialVersionUID = 1L; private String cmd;//当前操作的命令 private Object data;//发送的数据 private boolean flag;//操作是否成功 private String result;//返回的结果 public String getCmd() { return cmd; } public void setCmd(String cmd) { this.cmd = cmd; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } public boolean isFlag() { return flag; } public void setFlag(boolean flag) { this.flag = flag; } public String getResult() { return result; } public void setResult(String result) { this.result = result; } }
package com.slp.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; //注:我是将原来的引用Util util=new Util(); public class Util { // private static final String URL = "jdbc:mysql://127.0.0.1:3306/imooc"; // private static final String NAME = "root"; // private static final String PASSWORD = "199666"; // // public static Connection conn=null; // // static{ // // 获得数据库的连接 // try { // Class.forName("com.mysql.jdbc.Driver"); // conn = DriverManager.getConnection(URL, NAME, PASSWORD); // } catch (SQLException e) { // e.printStackTrace(); // } catch (ClassNotFoundException e) { // e.printStackTrace(); // } // } // public Connection getConnection(){ // // // return conn; //} public static Connection getConnection(){ String driverClassName="com.mysql.jdbc.Driver"; String URL = "jdbc:mysql://127.0.0.1:3306/imooc"; String username = "root"; String password = "199666"; Connection conn=null; try { Class.forName(driverClassName); conn=DriverManager.getConnection(URL, username, password); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } // 关闭资源的操作 public static void closeAll( Connection conn,Statement stmt,ResultSet rs){ try { if(conn!=null){ conn.close(); } if(stmt!=null){ stmt.close(); }if(rs!=null){ rs.close(); } } catch (SQLException e) { e.printStackTrace(); } } }
socket通信
socket通信的伪代码流程: socket简单的示例代码client端的代码:1importsocket23client=socket.socket()4client.connect((‘localhost‘,3001))56client.send(b‘hhhh‘)7data=client.recv(1024)8print(‘recv:‘,data)910client.close()1 查看详情
谁能用c语言写个最简单socket通信服务端和客户端示例
参考技术A网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。下面... 查看详情
优秀的国产高性能tcp/udp/http开源网络通信框架——hp-socket
参考技术AHP-Socket是国人开发的一套高性能的TCP/UDP/HTTP网络通信框架,包含了服务端、客户端以及Agent组件,可用于各种不同应用场景的通信系统,并且提供了C/C++、C#、Delphi、E、Java、Python等编程语言接口。HP-Socket对通信层完全封... 查看详情
javasocket编程api基础
Socket是Java网络编程的基础,深入学习socket对于了解tcp/ip网络通信协议很有帮助, 此文讲解Socket的基础编程。Socket用在哪里:①、主要用在进程间,②、网络间通信。文章目录如下:一、Socket通信基本示例二、消息通信优... 查看详情
实现tcpudp相互通信及应用
实验名称 Socket编程综合实验(1) 一、实验目的: 1、理解进程通信的原理及通信过程 2、掌握基于TCP和UDP的工作原理 3、掌握基本的Socket网络编程原理及方法... 查看详情
c#socket通信时如何限速?(代码片段)
以下是ChatGPT给出的答案:对socket通信进行限速一般可以通过设置发送和接收缓冲区的大小来实现。具体来说,可以通过以下步骤实现:创建一个Socket对象。调用Socket对象的SetSocketOption方法,将SocketOptionLevel属性设置为SocketOptionLev... 查看详情
GIO socket-server / -client 示例
】GIOsocket-server/-client示例【英文标题】:GIOsocket-server/-clientexample【发布时间】:2012-03-1918:39:36【问题描述】:我想创建一个使用GIO通过套接字进行通信的服务器和客户端应用程序。GSocketService和GSocketClient似乎非常适合此目的,... 查看详情
freecplus框架-tcp网络通信(代码片段)
...译规则文件是freecplus/demo/makefile。二、概述freecplus框架对socket通信封装如下:CTcpClient类:socket通信的客户端类。CTcpServer类:socket通信的服务端类。TcpRead函数:接收socket的对端发送过来的数据。TcpWrite函数:向socket的对端发送数... 查看详情
HTML5 web sockets - 如何与它们通信?
】HTML5websockets-如何与它们通信?【英文标题】:HTML5websockets-howtocommunicatewiththem?【发布时间】:2014-07-2421:19:07【问题描述】:我测试了许多套接字示例,它们之间的通信非常简单:套接字打开并保持打开状态,直到您关闭它,并... 查看详情
flask项目下的uwsgi配置方式及示例
...档,下面是自己的一些理解(可能不完全正确)!图一是socket方式,现在大部分web服务器(如nginx)支持uwsgi,这是这三种方式最高效的一种形式,socket通信速度会比http快图二是http-socket方式,这个适用于web服务器不支持uwsgi时。... 查看详情
[架构之路-62]:目标系统-平台软件-基础中间件-linuxsocket网络进程间通信的基本原理与示例(af_inetaf_unixaf_tipc)(代码片段)
目录前言:第1章LinuxSocket网络进程间通信概述1.1概述1.2基本的网络架构1.3协议栈分层1.4 网间进程标识的标识问题1.5创建socket与Socket标识1.5 AF_INET、AF_UNIX、AF_TIPC区别第2章Socket的本质2.1socket套接字的进一步解读2.2套接字描述... 查看详情
unity聊天室(socket编程)(代码片段)
示例: 什么是Socket:Socket(套接字),用来描述IP地址和端口,是通信链的句柄,应用程序可以通过Socket向网络发送请求或者应答网络请求!Socket是支撑TCP/IP协议的网络通信的基本操作单元,... 查看详情
基于`caché/iris`实现`socket`解决方案(代码片段)
文章目录基于`Caché/IRIS`实现`Socket`解决方案简介什么是`Socket`?`Socket`有两种类型使用场景`Socket`与`WebSocket`的区别工作流程示例1.利用`Socket`实现简单客户端、服务器通信。2.利用`S... 查看详情
socket通信流程
Socket通信流程HTTP底层就是通过socket建立连接通信管道,实现数据传输HTTP是一个TCP的传输协议(方式),它是一个可靠,安全的协议 查看详情
socket通信的流程
客户端:创建socket对象 socket.connect连接服务器 发送数据socket.send 接受数据socket.receive 挂断socket.close服务端:创建socket对象 socket.bind绑定端口 socket.listen开始监听 socket.appec... 查看详情
socket(代码片段)
socket:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一段称为一个socketsocket通信示例:1packagepers.example.demo.socket;23importjava.io.InputStream;4importjava.net.ServerSocket;5importjava.net.Socket;67publicclassSocketTest8publicstaticv... 查看详情
socket通信原理和实践
...程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下:1、网络中进程之间如何通信?2、Socket是什么?3、socket的... 查看详情
socket通信
socket通信一:socket基于Tcp连接,数据传输有保证 二:socket连接的建立过程: 1:服务器监听 2:客户端发出请求 3:建立连接 4:通信三:一个简单的例子:服务器端每隔一段时间发一些信息1:创建一个服务器端监听的线... 查看详情