安卓 socket简易聊天室

//服务端代码

package service;



import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;


import util.ReadThread;
import util.WriteThread;


public class ServerSocketDemo1 {
   public static void main(String[] args) {
  ServerSocket server=null;
  Socket socket=null;
  try {
server=new ServerSocket(9999);
System.out.println("服务器已启动......");
while(true){
socket=server.accept();
System.out.println(socket+"已经建立连接!");
//读写线程
new ReadThread(socket).start();
new WriteThread(socket).start();
  }
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
 
}

}

//客户端

package service;


import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;


import util.ReadThread;
import util.WriteThread;


public class SocketDemo1 {
  public static void main(String[] args) {
   Socket socket=null;
   try {
socket=new Socket("192.168.1.104", 9999);
new ReadThread(socket).start();
new WriteThread(socket).start();

} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();

}
 
}

//读线程

package util;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;


public class ReadThread extends Thread {
  private Socket socket;
  public ReadThread(Socket socket){
 this.socket=socket;
  }
  @Override
public void run() {
BufferedReader in=null;
try {
 in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
 while(true){
 String ctn = in.readLine();
 System.out.println(ctn);
 }
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}finally{
if(in != null)
try {
in.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
  
  
//写线程
package util;


import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;


public class WriteThread extends Thread{
   private Socket socket;
   public WriteThread(Socket socket){
  this.socket=socket;
   }
   @Override
public void run() {
  PrintWriter out=null;
  Scanner scanner=null;
  try {
out=new PrintWriter(socket.getOutputStream());
scanner=new Scanner(System.in);
while(true){
out.println(scanner.nextLine());
out.flush();
}
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}finally{
if(out != null) out.close();
}
}
   
}

猜你喜欢

转载自blog.csdn.net/qiaojianfang_1148/article/details/35784563