java學習之 網路編程

來源:互聯網
上載者:User

package com.java.suting;

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

public class SocketTest{
 
 public static void main(String[] args){
  
  try{
   //建立一個Socket通訊端
   Socket s=new Socket("java.sun.com",80);
   try{
    
    InputStream inStream=s.getInputStream();
    Scanner in =new Scanner(inStream);
    
    while(in.hasNextLine()){
     String line=in.nextLine();
     System.out.println(line);
    }
   }
   finally
   {
    //關閉一個通訊端
    s.close();
   }
  }
  catch(IOException e){
   
   e.printStackTrace();
  }
 }
}

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

package com.java.suting;

import java.io.*;
import java.net.*;
import java.util.*;

/*
 * This program implements a simple server to port 8189 and echoes back
 * all client input.
*/

public class EchoServer{
 
 public static void main(String[] args){
  
  try{
   
   //establish server socket
   ServerSocket s=new ServerSocket(8189);
   
   //wait for client connection
   Socket incoming=s.accept();
   
   try{
    //inStream接收用戶端的輸入,outStream輸出資料到用戶端
    InputStream inStream=incoming.getInputStream();
    OutputStream outStream= incoming.getOutputStream();
    
    Scanner in=new Scanner(inStream);
    PrintWriter out=new PrintWriter(outStream,true/*autoflush*/);
    
    out.println("Heloo Enter BYE to exit.");
    
    //echo client input
    boolean done=false;
    while(!done && in.hasNextLine())
    {
     
     String line=in.nextLine();
     out.println("Echo:" + line);
     if(line.trim().equals("BYE"))
      done=true;
    }
   }
   finally
   {
    incoming.close();
   }
  }
  catch(IOException e){
   
   e.printStackTrace();
  }
 }
}

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·

 

 

package com.java.suting;

import java.io.*;
import java.net.*;
import java.util.*;

/*
 * This program implements a multithread server that listens to port
 * 8189 and echoes back all client input
*/

public class ThreadEchoServer{
 
 public static void main(String[] args){
  
  try{
   
   int i=1;
   ServerSocket s=new ServerSocket(8189);
   
   while(true){
    
    Socket incoming=s.accept();
    System.out.println("Spawing "+i);
    //建立一個線程
    Runnable r=new ThreadedEchoHandler(incoming,i);
    Thread t=new Thread(r);
    
    t.start();
    i++;
   }
  }
  catch(IOException e){
   
   e.printStackTrace();
  }
 }
}

/*
 *  This class handles the client input for one server socket connection
 * 
 */
class ThreadedEchoHandler implements Runnable{

 
 /*
  * Constructor
  */
 public ThreadedEchoHandler(Socket i,int c){
  
  incoming =i;
  counter=c;
 }
 
 
 @Override
 public void run() {
  // TODO Auto-generated method stub
  
  try{
   try{
    //inStream接收用戶端的輸入,outStream輸出資料到用戶端
    InputStream inStream=incoming.getInputStream();
    OutputStream outStream= incoming.getOutputStream();
   
    Scanner in=new Scanner(inStream);
    PrintWriter out=new PrintWriter(outStream,true/*autoflush*/);
   
    out.println("Heloo Enter BYE to exit.");
   
    //echo client input
    boolean done=false;
    while(!done && in.hasNextLine())
    {
    
     String line=in.nextLine();
     out.println("Echo:" + line);
     if(line.trim().equals("BYE"))
      done=true;
    }
   }
   finally
   {
    incoming.close();
   }
  }
  catch(IOException e){
  
   e.printStackTrace();
  }
 }
 
 private Socket incoming;
 private int counter;
}

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.