客户端
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class LoginClient {
public static void main(String[] args) {
try {
Socket socket=new Socket("localhost", 8888);
OutputStream os=socket.getOutputStream();
ObjectOutputStream oos=new ObjectOutputStream(os);
User user=new User("admin", "123");
oos.writeObject(user);
socket.shutdownOutput();
InputStream is=socket.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String reply=br.readLine();
while(reply!=null){
System.out.println("我是客户端,服务器说:"+reply);
reply=br.readLine();
}
socket.shutdownInput();
br.close();
is.close();
oos.close();
os.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
标题
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class LoginServer {
public static void main(String[] args) {
try {
ServerSocket serverSocket=new ServerSocket(8888);
System.out.println("******服务器即将启动,等待客户端的连接");
int count=0;
while(true){
Socket socket=serverSocket.accept();
ServerThread thread=new ServerThread(socket);
thread.start();
count++;
System.out.println("客户端数量:"+count);
System.out.println("客户端IP:"+socket.getInetAddress().getHostAddress());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
服务器端线程处理类
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
public class ServerThread extends Thread {
Socket socket=null;
public ServerThread(Socket socket){
this.socket=socket;
}
@Override
public void run() {
InputStream is=null;
ObjectInputStream ois=null;
OutputStream os=null;
PrintWriter pw=null;
try {
is=socket.getInputStream();
ois=new ObjectInputStream(is);
User user=(User) ois.readObject();
System.out.println("用户名:"+user.getUsername());
System.out.println("密码:"+user.getPassword());
socket.shutdownInput();
os=socket.getOutputStream();
pw=new PrintWriter(os);
pw.println("欢迎您!");
pw.flush();
socket.shutdownOutput();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally{
try {
if(pw!=null)
pw.close();
if(os!=null)
os.close();
if(ois!=null)
ois.close();
if(is!=null)
is.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
标题
import java.io.Serializable;
public class User implements Serializable {
private static final long serialVersionUID = 6682618522883563864L;
private int id;
private String username;
private String password;
public User() {
super();
}
public User(String username, String password) {
super();
this.username = username;
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
}