线程数据传输

来源:互联网 发布:c语言extern的作用 编辑:程序博客网 时间:2024/06/05 09:11
1、public class ClientInputThread extends Thread
{
 private Socket socket;
 
 public ClientInputThread(Socket socket)
 {
  this.socket = socket;
 }
 
 @Override
 public void run()
 {
  try
  {
   InputStream is = socket.getInputStream();
   
   while(true)
   {
    byte[] buffer = new byte[1024];
    
    int length = is.read(buffer);
    
    String str = new String(buffer, 0, length);
    
    System.out.println(str);
   }
  }
  catch (IOException e)
  {
   System.out.println("断开连接");
  }
 }
}
2、

public class ClientOutputThread extends Thread
{
 private Socket socket;

 public ClientOutputThread(Socket socket)
 {
  this.socket = socket;
 }

 @Override
 public void run()
 {
  try
  {
   OutputStream os = socket.getOutputStream();

   while(true)
   {
    BufferedReader reader = new BufferedReader(new InputStreamReader(
      System.in));
    
    String line = reader.readLine();
    
    os.write(line.getBytes());
   }
  }
  catch (IOException e)
  {
   System.out.println("断开连接");
  }
 }
}

3、public class ServerInputThread extends Thread
{
 private Socket socket;
 
 public ServerInputThread(Socket socket)
 {
  this.socket = socket;
 }
 
 @Override
 public void run()
 {
  try
  {
   InputStream is = socket.getInputStream();
   
   while(true)
   {
    byte[] buffer = new byte[1024];
    
    int length = is.read(buffer);
    
    String str = new String(buffer, 0, length);
    
    System.out.println(str);
   }
  }
  catch (IOException e)
  {
   System.out.println("断开连接");
  }
 }
}
4、

public class ServerOutputThread extends Thread
{
 private Socket socket;

 public ServerOutputThread(Socket socket)
 {
  this.socket = socket;
 }

 @Override
 public void run()
 {
  try
  {
   OutputStream os = socket.getOutputStream();

   while(true)
   {
    BufferedReader reader = new BufferedReader(new InputStreamReader(
      System.in));
    
    String line = reader.readLine();
    
    os.write(line.getBytes());
   }
  }
  catch (IOException e)
  {
   System.out.println("断开连接");
  }
 }
}

5、public class MainServer
{
 public static void main(String[] args) throws Exception
 {
  ServerSocket serverSocket = new ServerSocket(4000);
  
  while(true)
  {
   
   try{
    Socket socket = serverSocket.accept();
    //启动读写线程
     new ServerInputThread(socket).start();
     new ServerOutputThread(socket).start();
   }
   catch (Exception e) {
    System.out.println("断开连接");
   }
  
   
   
  }
 }
}
6、

public class MainClient
{
 public static void main(String[] args) throws Exception, IOException
 {
  Socket socket = new Socket("127.0.0.1", 4000);

  new ClientInputThread(socket).start();
  new ClientOutputThread(socket).start();
 }
}


 

原创粉丝点击