java学习之 网络编程

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;
}

 

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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值