java 网络编程-多人登录面向对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 网络编程-多人登录面向对象相关的知识,希望对你有一定的参考价值。
TCP:模拟登录 :多个客户端,先后等待public class tcp
public static void main(String[]args) throws IOException
System.out.println("服务器启动中...");
ServerSocket server=new ServerSocket(8888);
boolean flag=true;
while(flag)
Socket client=server.accept(); //一个客户端建立连接
System.out.println("一个客户端建立了连接");
new Thread(new channel(client)).start();
static class channel implements Runnable
private Socket client;
private DataInputStream dis; //输入流
DataOutputStream dos; //输出流
public channel(Socket client)
this.client=client;
try
dis=new DataInputStream(client.getInputStream());
dos=new DataOutputStream(client.getOutputStream());
catch (IOException e)
e.printStackTrace();
release();
public void run()
String uname="";
String password="";
String data=receive();
String[] datas=data.split("&");
uname=datas[0];
password=datas[1];
if(uname.equals("杜雨龙")&&password.equals("你最帅"))
send("登陆成功");
else
send("登录失败");
release();
//接收数据
private String receive()
String data="";
try
data = dis.readUTF();
catch (IOException e)
e.printStackTrace();
return data;
//发送数据
private void send(String msg)
try
dos.writeUTF(msg);
dos.flush();
catch (IOException e)
e.printStackTrace();
//释放资源
private void release()
try
if(null!=dis)
dis.close();
catch (IOException e)
e.printStackTrace();
try
if(null!=dis)
dos.close();
catch (IOException e)
e.printStackTrace();
try
if(null!=client)
client.close();
catch (IOException e)
e.printStackTrace();
客户端: 存储文件
public class tcp2
public static void main(String[]args) throws IOException
System.out.println("客户端启动中...");
Socket client=new Socket("localhost",8888);
//发送
new send(client).sendto(name+"&"+password);
new receive(client).receiveto();
client.close();
static class send
private Socket client;
private DataOutputStream dos;
private BufferedReader br;
private String msg;
public send(Socket client)
this.client=client;
br=new BufferedReader(new InputStreamReader(System.in));
msg=init();
try
dos =new DataOutputStream(client.getOutputStream());
catch (IOException e)
e.printStackTrace();
public void sendto()
try
dos.writeUTF(msg);
dos.flush();
catch (IOException e)
e.printStackTrace();
public String init()
try
System.out.println("请输入用户名");
String name=br.readLine();
System.out.println("请输入密码");
String password=br.readLine();
return name+"&"+password;
catch (IOException e)
e.printStackTrace();
return null;
static class receive
private DataInputStream dis;
private Socket client;
public receive(Socket client)
this.client=client;
DataInputStream dis=new DataInputStream(client.getInputStream());
public void receiveto()
String data;
try
data = dis.readUTF();
System.out.println(data);
catch (IOException e)
e.printStackTrace();
以上是关于java 网络编程-多人登录面向对象的主要内容,如果未能解决你的问题,请参考以下文章