JAVA/C++ Socket编程验证用户名密码正确性 100

用C++或者JAVA写两段代码。一个服务器端一个客户端,建立socket通道,服务器端通过端口监听。客户端初始显示pleaseinputusername,然后发送给服务器... 用C++或者JAVA写两段代码。 一个服务器端一个客户端,建立socket通道,服务器端通过端口监听。 客户端初始显示please input user name,然后发送给服务器端,服务器端返回please input password。 输入完后把用户名和密码发送给服务器端,服务器端跟password.txt 文件里预先输入的用户名和密码比对,如果正确则返回一个succeed结果,如果错误就返回wrong password or username 然后客户端关闭socket。服务器端继续监听。 展开
 我来答
仍新竹T1
2011-10-05 · TA获得超过150个赞
知道答主
回答量:59
采纳率:0%
帮助的人:54.8万
展开全部
java代码
客户端:

public void landContents(){
//点击登陆,与服务器端建立连接
String name=nametf.getText();
String pwd=pwdtf.getText();
try {
Socket sk=new Socket("127.0.0.1",8821);
PrintWriter pw=new PrintWriter(sk.getOutputStream());
pw.println("登陆"+","+name+","+pwd);
pw.flush();
BufferedReader br=new BufferedReader(new InputStreamReader(sk.getInputStream()));
String str=br.readLine();
if(str.equals("用户不存在")){
JOptionPane.showMessageDialog(null,"用户不存在,请重新填写","提示信息", 2);
nametf.setText("");
pwdtf.setText("");
nametf.requestFocus();
}else if(pwd.equals(str)){
this.setVisible(false);
dispose();
new MainWindow().setVisible(true);
}else{
JOptionPane.showMessageDialog(null,"密码错误,请重新输入","提示信息", 2);
pwdtf.setText("");
pwdtf.requestFocus();
}
} catch (Exception e) {
e.printStackTrace();
}

}
服务端:

public void run() {
if(!file.exists()){
file.mkdir();//如果名为用户注册信息的文件不存在,则创建
}
try {
br=new BufferedReader(new InputStreamReader(sk.getInputStream()));
br_str=br.readLine();
br_split=br_str.split(",");//逗号作为分隔符将服务器从客户端获得的信息转换为一个字符串数组
if(br_split[0].equals("注册")){
File f=new File(file,br_split[1]+".txt");
if(f.exists()){
PrintWriter pw=new PrintWriter(sk.getOutputStream());
pw.println("用户已存在");
pw.flush();
}else{
f.createNewFile();
BufferedWriter bw=new BufferedWriter(new FileWriter(f));
bw.write(br_str);
bw.flush();
bw.close();
pw=new PrintWriter(sk.getOutputStream());
pw.println("用户名不存在");
pw.flush();
}

}else if(br_split[0].equals("登陆")){
File f=new File(file,br_split[1]+".txt");
if(!f.exists()){
pw=new PrintWriter(sk.getOutputStream());
pw.println("用户名不存在");
pw.flush();
}else{
BufferedReader brr=new BufferedReader(new FileReader(f));
String read=brr.readLine();
String[] read_split=read.split(",");
pw=new PrintWriter(sk.getOutputStream());
pw.println(read_split[2]);
pw.flush();
pw.close();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户78189
2011-10-04
知道答主
回答量:14
采纳率:0%
帮助的人:2.2万
展开全部
8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式