<pre name="code" class="java">线程:
package com.hfxt.p2;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
//多线程:接收客户端的请求和回馈响应
public class LoginThread extends Thread{
private Socket socket;
//构造方法
public LoginThread(Socket socket){
this.socket = socket;
}
public void run(){
try {
//接收用户的请求
InputStream is = socket.getInputStream();
//用带缓冲区的字符流包起来
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line=null;
while((line=br.readLine())!=null){
System.out.println("客户端:"+line);
}
//获取客户端的IP
InetAddress ia = socket.getInetAddress();
String ip = ia.getHostAddress();
System.out.println("客户端的ip:"+ip);
//反馈给客户端的响应
OutputStream os = socket.getOutputStream();
String reply = "登录成功!";
os.write(reply.getBytes());
//关闭资源
br.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
服务器:
package com.hfxt.p2;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
//服务器:一直监听请求,当监听到请求就创建一个线程处理请求
public class LoginSocket {
public static void main(String[] args) {
try {
//创建服务器
ServerSocket serverScoket = new ServerSocket(1000);
//while(true)死循环,一直在监听
while(true){
//创建监听器(一直监听)
Socket socket = serverScoket.accept();
//监听到请求后,创建线程对象
LoginThread lt = new LoginThread(socket);
//开启线程
lt.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端1:
package com.hfxt.p2;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
//客户端1
public class ClientSocket1 {
public static void main(String[] args) {
try {
//创建客户端
Socket socket = new Socket("localhost",1000);
OutputStream os = socket.getOutputStream();
String str = "用户名:admin1,密码:546695448";
byte[] strs = str.getBytes();
os.write(strs);
//关闭输出
socket.shutdownOutput();
//接收服务器的响应
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String reply = null;
while((reply=br.readLine())!=null){
System.out.println("服务器接收的信息:"+reply);
}
//关闭资源
br.close();
is.close();
os.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端2:
package com.hfxt.p2;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
//客户端2
public class ClientSocket2 {
public static void main(String[] args) {
try {
//创建客户端
Socket socket = new Socket("localhost",1000);
OutputStream os = socket.getOutputStream();
String str = "用户名:admin2,密码:546695448";
byte[] strs = str.getBytes();
os.write(strs);
//关闭输出
socket.shutdownOutput();
//接收服务器的响应
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String reply = null;
while((reply=br.readLine())!=null){
System.out.println("服务器接收的信息:"+reply);
}
//关闭资源
br.close();
is.close();
os.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端3:
package com.hfxt.p2;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
//客户端3
public class ClientSocket3 {
public static void main(String[] args) {
try {
//创建客户端
Socket socket = new Socket("localhost",1000);
OutputStream os = socket.getOutputStream();
String str = "用户名:admin3,密码:546695448";
byte[] strs = str.getBytes();
os.write(strs);
//关闭输出
socket.shutdownOutput();
//接收服务器的响应
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String reply = null;
while((reply=br.readLine())!=null){
System.out.println("服务器接收的信息:"+reply);
}
//关闭资源
br.close();
is.close();
os.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}