java单线程聊天室代码
服务端代码
public class Main extends Thread {
private ServerSocket serverSocket = null;
Socket socket = null;
public Main(int port) {
try {
serverSocket = new ServerSocket(port);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void run() {
try {
socket = serverSocket.accept();
new Writ().start();
InputStream inputStream = socket.getInputStream();
int len = 0;
byte[] bytes = new byte[1024];
while ((len = inputStream.read(bytes)) != -1) {
System.out.println(new String(bytes, 0, len, "utf-8"));
}
} catch (IOException e) {
e.printStackTrace();
}
}
class Writ extends Thread{
OutputStream outputStream=null;
Scanner scanner=null;
@Override
public void run() {
try {
outputStream = socket.getOutputStream();
scanner=new Scanner(System.in);
String s="";
while (true){
s = scanner.next();
outputStream.write(s.getBytes());
outputStream.flush();
if(s.equals("p")){
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws IOException {
Main main01=new Main(8888);
main01.start();
}
}
客户端
public class Demo01 extends Thread{
Socket socket = null;
public Demo01(String IP,int port) {
try {
socket=new Socket(IP,port);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void run() {
try {
InputStream inputStream = socket.getInputStream();
new Writ().start();
int len = 0;
byte[] bytes = new byte[1024];
while ((len = inputStream.read(bytes)) != -1) {
System.out.println(new String(bytes, 0, len, "utf-8"));
}
} catch (IOException e) {
e.printStackTrace();
}
}
class Writ extends Thread{
OutputStream outputStream=null;
Scanner scanner=null;
@Override
public void run() {
try {
outputStream = socket.getOutputStream();
scanner=new Scanner(System.in);
String s="";
while (true){
s = scanner.next();
outputStream.write(s.getBytes());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Demo01 demo01=new Demo01("192.168.1.4",8888);
demo01.start();
}
}