java socket数据库_java Socket(TCP)编程小项目

package服务器端相关操作;importjava.io.Serializable;/** 创建存储需要传输信息的对象,方便客户端向服务器端传送数据*/

public class ClientToServerInfo implementsSerializable{

String sign;

String name;

String password_OR_path;//重写构造函数

publicClientToServerInfo(String sign,String name,String password_OR_path){this.sign=sign;this.name=name;this.password_OR_path=password_OR_path;

}publicString getSign() {returnsign;

}public voidsetSign(String sign) {this.sign =sign;

}publicString getName() {returnname;

}public voidsetName(String Name) {this.name =name;

}publicString getPassword_OR_path() {returnpassword_OR_path;

}public voidsetPassword_OR_path(String password_OR_path) {this.password_OR_path =password_OR_path;

}

@OverridepublicString toString() {return "客户端说: [sign=" + sign + ", name=" + name + ", password_OR_path=" +password_OR_path + "]";

}

}importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.OutputStream;importjava.io.PrintWriter;importjava.net.ServerSocket;importjava.net.Socket;/** 服务器端主程序操作*/

public classServer {public static voidmain(String[] args) {try{//1.创建服务器端的ServerSocket,指定伴随的端口号

ServerSocket serversocket=new ServerSocket(8880);

System.out.println("****服务器端即将启动,等待客户端*****");//提示服务器开启

Socket socket=null;while(true){//2.调用accept()方法开始监听,等待客户端连接

socket=serversocket.accept();//调用线程

ServerThread st=newServerThread(socket);

st.start();

}

}catch(IOException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}

}importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.ObjectInputStream;importjava.io.OutputStream;importjava.io.PrintWriter;importjava.net.Socket;importjava.sql.SQLException;importServer_To_Client_Response.Add_File_Response;importServer_To_Client_Response.Add_User_Response;importServer_To_Client_Response.Select_User_Response;public class ServerThread extendsThread {//创建与本线程相关的socket

Socket socket=null;

ObjectInputStream ois=null;//重写构造函数

publicServerThread(Socket socket){this.socket=socket;

}//线程操作 获取输出流,响应客户端的请求

public voidrun(){try{//3.获取输入流,并读取客户端信息

ois=newObjectInputStream(socket.getInputStream());/** 读取接收到的对象信息*/

while( ois.available()!=-1){

ClientToServerInfo ctsi=(ClientToServerInfo)ois.readObject();

System.out.println(ctsi.toString());//打印客户端传到服务器的数据(对象)

/** 需要客户端传入的对象数据进行分析,根据传入的sign标志值进行相应的操作

* sign="1"完成注册会员操作,链接数据库,向数据库中user表添加记录

* sign="2"完成会员登录操作,连接数据库,在数据库中user表查询记录

* sign="3"完成文件上传操作,连接数据库,向数据库中file表添加记录*/

//System.out.println(ctsi.sign);

if(ctsi.sign.equals("1")){//调用 Add_User_Response类的构造方法对客户端传入的信息进行详细的响应

Add_User_Response aur=newAdd_User_Response(socket, ctsi.name,ctsi.password_OR_path);//System.out.println("运行完Add_User_Response类");

break;

}if(ctsi.sign.equals("2")){//调用 Select_User_Response类的构造方法对客户端传入的信息进行详细的响应

Select_User_Response sur=newSelect_User_Response(socket, ctsi.name,ctsi.password_OR_path);//System.out.println("运行完 Select_User_Response类");

break;

}if(ctsi.sign.equals("3")){//调用 Add_File_Response类的构造方法对客户端传入的信息进行详细的响应

Add_File_Response afr=newAdd_File_Response(socket, ctsi.name,ctsi.password_OR_path);//System.out.println("运行完 Add_File_Response类");

break;

}

}//5.关闭资源

ois.close();

}catch(ClassNotFoundException e) {//TODO Auto-generated catch block

e.printStackTrace();

}catch(IOException e) {//TODO Auto-generated catch block

e.printStackTrace();

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值