java用socket和sql做一个注册和登录的程序,想知道怎么从服务器端验证用户名和密码正确后,怎么让客户端知道,并且登录成功?
求教!

解决方案 »

  1.   

    服务器验证通过后,生成一个token给客户端,或者一个特殊的标志位也许!
      

  2.   

    socket连接成功后,客户端给服务端发送登录消息,服务端收到后,根据登录结果,把反馈信息写到客户端的IO流,客户端再读出来。
      

  3.   

    server端:package tcplistener;import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.net.ServerSocket;
    import java.net.Socket;public class SocketServer {
    public static void main(String[] args) {
    ServerSocket server;
    DataInputStream in = null;
    DataOutputStream out = null;
    try {
    server = new ServerSocket(9991);
    while (true) {
    Socket client = server.accept();
    in = new DataInputStream(client.getInputStream());
    String loginmsg = in.readUTF();//接收客户端信息
    String loginback = "fail";//登录结果提示信息
    if(!"".equals(loginmsg) && loginmsg.equals("true")){
    loginback = "success";//登录成功
    }
    out = new DataOutputStream(client.getOutputStream());
    out.writeUTF(loginback);//传到客户端
    out.close();
    } } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }client端:package tcplistener;import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.net.Socket;
    import java.net.UnknownHostException;public class SocketClient { public static void main(String[] args) {
    Socket socket = null;
    DataOutputStream out = null;
    DataInputStream in = null;
    try { socket = new Socket("你的ip地址", 9991); in = new DataInputStream(socket.getInputStream());
    out = new DataOutputStream(socket.getOutputStream());
    out.writeUTF("true");//客户端传递登录信息

    /**读取服务端反馈信息*/
    String result = in.readUTF();
    System.out.println("登录提示:"+result); } catch (UnknownHostException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }}