server

public class Server{

    private static int port = 8888;
private static ServerSocket serverSocket;
private static Socket socket; public static void main(String args[]) throws IOException { serverSocket = new ServerSocket(port, 2);
socket = serverSocket.accept();
System.out.println("客户端已链接"); try {
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
JDBCService jdbcService = new JDBCService(); while(true){ Employee employee = (Employee) ois.readObject();
String s= employee.getName();
if(s.equals("bye")){
ois.close();
socket.close();
System.out.println("关闭服务器的 socket");
break;
} jdbcService.add(employee.getName(),employee.getEmail(),employee.getName());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

client

public class Client {

    private static int port = 8888;
private static String host = "localhost";
private static Socket socket; public static void main(String args[]) throws UnknownHostException,
IOException {
socket = new Socket(host, port);
ObjectOutputStream oos= new ObjectOutputStream(socket.getOutputStream());
Employee employee =new Employee(); while(true){
employee.setName("王小东");
employee.setEmail("qq@.com");
employee.setPwd("12334");
// 发送键盘输入的一行
String s = new BufferedReader(new InputStreamReader(System.in)).readLine(); if(s.equals("bye")){
employee.setName("bye");
oos.writeObject(employee);
oos.flush(); oos.close();
socket.close();
System.out.println("关闭客户端的 socket");
break;
}else if(s.equals("send")){
oos.writeObject(employee);//写入数据
oos.flush();//发送数据
}else{
System.out.println("无效指令,请重新输入");
}
}
}
}

JDBCService.java

public class JDBCService {

    //插入操作
public int add(String uname,String uemail,String upwd) {
int i=0;
String sql="insert into employee (name,email,pwd) values (?,?,?)";
DBConnection db = new DBConnection();
try {
PreparedStatement preStmt = (PreparedStatement) db.conn.prepareStatement(sql);
preStmt.setString(1, uname);
preStmt.setString(2, uemail);
preStmt.setString(3, upwd);
preStmt.executeUpdate();
//Statement statement = (Statement) db.conn.createStatement();
//statement.executeUpdate(sql); preStmt.close();
db.close();//关闭连接
} catch (Exception e) {
e.printStackTrace();
}
return i;//返回影响的行数,1为执行成功
}
//查找操作
public void show(){
String sql ="select * from employee";
DBConnection db = new DBConnection(); System.out.println("-----------------");
System.out.println("姓名" +"\t"+ "邮箱" +"\t"+ "日期");
System.out.println("-----------------"); try {
Statement stmt = (Statement) db.conn.createStatement();
ResultSet rs = (ResultSet) stmt.executeQuery(sql);
while(rs.next()){
String uname = rs.getString("name");
String uemail = rs.getString("email");
String uhiredate = rs.getString("hiredate");
//可以将查找到的值写入类,然后返回相应的对象
//这里 先用输出的端口显示一下
System.out.println(uname +"\t"+ uemail +"\t"+ uhiredate);
}
rs.close();
db.close();//关闭连接
} catch (SQLException e) {
e.printStackTrace();
}
}
//更新操作
public int update(String uname,String uemail,String upwd) {
int i =0;
String sql="update employee set email=?,pwd=? where name=?";
DBConnection db = new DBConnection(); try {
PreparedStatement preStmt = (PreparedStatement) db.conn.prepareStatement(sql);
preStmt.setString(1, uemail);
preStmt.setString(2, upwd);
preStmt.setString(3, uname);
preStmt.executeUpdate(); preStmt.close();
db.close();//关闭连接
} catch (SQLException e) {
e.printStackTrace();
}
return i;//返回影响的行数,1为执行成功
}
//删除操作
public int del(String uname) {
int i=0;
String sql="delete from employee where name=?";
DBConnection db = new DBConnection();
try {
PreparedStatement preStmt = (PreparedStatement) db.conn.prepareStatement(sql);
preStmt.setString(1, uname);
preStmt.executeUpdate(); preStmt.close();
db.close();//关闭连接
} catch (SQLException e){
e.printStackTrace();
}
return i;//返回影响的行数,1为执行成功
}
}

Employee.java

public class Employee implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private String pwd;
private Integer grade;
private String email;
private java.util.Date hiredate;
private Float salary; public Employee() { } public Employee(String name, String pwd, Integer grade, String email, Date hiredate, Float salary) {
this.name = name;
this.pwd = pwd;
this.grade = grade;
this.email = email;
this.hiredate = hiredate;
this.salary = salary;
} public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
} public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public Integer getGrade() {
return grade;
}
public void setGrade(Integer grade) {
this.grade = grade;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public java.util.Date getHiredate() {
return hiredate;
}
public void setHiredate(java.util.Date hiredate) {
this.hiredate = hiredate;
}
public Float getSalary() {
return salary;
}
public void setSalary(Float salary) {
this.salary = salary;
}
}

socket传输对象的更多相关文章

  1. Java Socket实战之三:传输对象

    转自:https://i.cnblogs.com/EditPosts.aspx?opt=1 前面两篇文章介绍了怎样建立Java Socket通信,这一篇说一下怎样使用Java Socket来传输对象. ...

  2. JAVA Socket传输Object(对象)注意的问题

    在java中,可以通过socket将一个对象进行传递,通过ObjectOutputStream,ObjectInputStream来进行写入和读取(具体的方法参考http://blog.csdn.ne ...

  3. [C#技术参考]Socket传输结构数据

    最近在做一个机器人项目,要实时的接收机器人传回的坐标信息,并在客户端显示当前的地图和机器人的位置.当然坐标的回传是用的Socket,用的是C++的结构体表示的坐标信息.但是C#不能像C++那样很eas ...

  4. C++ socket 传输不同类型数据的四种方式

    使用socket传输组织好的不同类型数据,有四种不同的方式(我知道的嘿嘿): a. 结构体 b. Json序列化 c. 类对象 d. protobuf 下面逐一整理一下,方便以后进行项目开发. 1. ...

  5. Mina使用总结(四)传输对象ObjectSerializationCodecFactory

    用mina框架传输对象,对于开发者来说,直接传输对象,而不用自己编写相应的报文转换代码,将大大节省 开发时间. 即使用对象编码解码器 使用ObjectSerializationCodecFactory ...

  6. Java开发笔记(一百一十四)利用Socket传输文本消息

    前面介绍了HTTP协议的网络通信,包括接口调用.文件下载和文件上传,这些功能固然已经覆盖了常见的联网操作,可是HTTP协议拥有专门的通信规则,这些规则一方面有利于维持正常的数据交互,另一方面不可避免地 ...

  7. UDP传输对象--JavaSE考试题

    Server.java package com.sxt.udp.object; import java.io.ByteArrayInputStream; import java.io.ObjectIn ...

  8. TCP之传输对象 客户端传输user对象到服务端 验证登录是否合法

    Server.java package com.sxt.tcp4; import java.io.IOException; import java.io.ObjectInputStream; impo ...

  9. unity探索者之socket传输protobuf字节流(一)

    版权声明:本文为原创文章,转载请声明http://www.cnblogs.com/unityExplorer/p/6974229.html 近期在做一个棋牌项目,需要用到socket传输protobu ...

随机推荐

  1. 国外常用代理IP对比【仅供参考】

    国外常用代理IP对比[仅供参考]http://www.it588.cn/vmware/2019-03-22/547.html

  2. 2018.6.9 MyEclipse连接Oracle数据库方法及步骤

    在windows栏找到showXXX 然后选择最后一个others 找到Database 然后选择oracle 接着就是jar包的问题了 这个不同于mysql oracle如果装在了本机上面可以在文件 ...

  3. 详解JVM工作原理和特点

    在我们运行和调试Java程序的时候,经常会提到一个JVM的概念.本文将为大家讲解JVM工作原理和特点,希望对大家有所帮助. AD:网+线下沙龙 | 移动APP模式创新:给你一个做APP的理由>& ...

  4. java算法面试题:有数组a[n],用java代码将数组元素顺序颠倒

    package com.swift; import java.util.ArrayList; import java.util.Collections; import java.util.List; ...

  5. swift 循环语句

    // // main.swift // switch // // Created by lanou on 16/10/21. // Copyright (c) 2016年 lanou. All rig ...

  6. 新装Ubuntu后的一些配置

    一:Ubuntu 16.04 开启root用户和使用root用户登陆 1. 编辑/etc/lightdm/lightdm.conf autologin-guest=false autologin-us ...

  7. 转载:java分布式服务框架Dubbo的介绍与使用

    1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需 ...

  8. Python学习——numpy.random

    numpy.random.rand numpy.random模块作用是生成随机数,其中numpy.random.rand(d0, d1, ..., dn):生成一个[0,1)之间的随机浮点数或N维浮点 ...

  9. UC浏览器打开首页显示:显示此网页时出了点问题

    使用UC浏览器打开网页的时候显示出错,如下图所示.但是用其他浏览器都很正常 我自己用的解决方法:最近刚下载了驱动精灵,听同学的把驱动精灵卸载了就恢复正常了

  10. 24.VUE学习之-变异方法filter与regexp实现评论搜索功能

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...