模拟用户登录的功能
import java.net.*;
import java.io.*;
public class LoginServer { public static void main(String[] args) { try { //建立一个服务器Socket(ServerSocket)指定端口并开始监听 ServerSocket serverSocket=new ServerSocket(8800);
//使用accept()方法等待客户端触发通信 Socket socket=serverSocket.accept();
//打开输入输出流 InputStream is=socket.getInputStream();
OutputStream os=socket.getOutputStream();
//获取客户端信息,即从输入流读取信息 BufferedReader br=new BufferedReader(new InputStreamReader(is));
String info=null;
while(!((info=br.readLine())==null)){ System.out.println("我是服务器,客户登录信息为:"+info);
} //给客户端一个响应,即向输出流写入信息 String reply="欢迎你,登录成功!";
os.write(reply.getBytes());
//关闭资源 br.close();
os.close();
is.close();
socket.close();
serverSocket.close();
} catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace();
} } } **************************************************************************************************** import java.net.*;
import java.io.*;
public class LoginClient { public static void main(String[] args) { try { //建立客户端Socket连接,指定服务器的位置以及端口 Socket socket=new Socket("localhost",8800);
//打开输入输出流 OutputStream os=socket.getOutputStream();
InputStream is=socket.getInputStream();
//发送客户端登录信息,即向输出流写入信息 String info="用户名:Tom;
用户密码:123456";
os.write(info.getBytes());
socket.shutdownOutput();
//接收服务器段的响应,即从输入流读取信息 String reply=null;
BufferedReader br=new BufferedReader(new InputStreamReader(is));
while(!((reply=br.readLine())==null)){ System.out.println("我是客户端,服务器的响应为:"+reply);
} //4.关闭资源 br.close();
is.close();
os.close();
socket.close();
} catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace();
} catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace();
} } }
推荐阅读
- 编写字典程序
- 精细化的思考
- 用科学的思维做最好的自己
- cocosbcx白皮书解读(一)|cocosbcx白皮书解读(一)| 区块链如何统一开发者、发行商、用户之间的利益
- 三门问题(蒙提霍尔悖论)分析与Golang模拟
- java|java b2b2c shop 多用户商城系统源码- config 修改配置
- 投石机可连续抛射石头【Algodoo|投石机可连续抛射石头【Algodoo | 物理模拟】
- 借呗用户被银行拉黑贷不到款(马云(怪我咯?))
- 抓住外部用户的心智
- 运维|Linux 禁止用户或 IP通过 SSH 登录