java socket

socke

Java.net.Socket 类
socket() //创建一个未连接的套接字 void connect(SocketAddress address)//将套接字连接到给定的地址 void connect(SocketAddress address,int timeoutInMillisseconds) //setTimeout 设置超时值,单位毫秒,如果超时没反应将返回 void setSoTimeout(int timecoutInMilliseconds) //setTimeout 设置超时值,单位毫秒,如果之后的读写操作超时将抛出异常 boolean isConnected() //如果套接字已连接,返回true boolean isClosed() //如果套接字已关闭,返回true
public void shutdownOutput() //将输出流设为结束
public void shutdownInput() //将输入流设为"结束"
public void isOutputShutdown() //如果输出流结束,返回true
public void isInputShutdown() //如果输入流"结束",返回true
 

 

Socket 单次连接实例

package test;
//: MultiJabberClient.java 
//Client that tests the MultiJabberServer 
//by starting up multiple clients. 
import java.net.*; 
import java.io.*; 

public class MultiJabberClient { 

    public static void main(String[] args){
    System.out.println("Making client " ); 
     Socket socket = new Socket(); 
     BufferedReader in; 
     PrintWriter out; 
     try { 
    //   socket =  
//         new Socket(addr, 5000); 

//InetAddress iis = Inet6Address.getByName("106.13.46.152");
//socket = new Socket(iis,5000); SocketAddress address= new InetSocketAddress("106.13.46.152",5000);//获得连接端点 socket.connect(address,1000); //连接 参数1000是延时时间 // socket.setSoTimeout(100);//setTimeout 设置超时值,单位毫秒,如果之后的读写操作超时将抛出异常 } catch(IOException e) { // If the creation of the socket fails, // nothing needs to be cleaned up. } try { in = new BufferedReader( new InputStreamReader( socket.getInputStream())); // Enable auto-flush: out = new PrintWriter( new BufferedWriter( new OutputStreamWriter( socket.getOutputStream())), true); for(int i = 0; i < 10; i++) { out.println("I" + ":" + i); String str = in.readLine(); System.out.println(str); } out.println("END"); } catch(IOException e) { // The socket should be closed on any // failures other than the socket // constructor: try { socket.close(); } catch(IOException e2) {} } } } ///:~

 

 

socket 多个客服端编程实例

package test;
//: MultiJabberClient.java 
// Client that tests the MultiJabberServer 
// by starting up multiple clients. 
import java.net.*; 
import java.io.*; 
 
class JabberClientThread extends Thread { 
  private Socket socket; 
  private BufferedReader in; 
  private PrintWriter out; 
  private static int counter = 0; 
  private int id = counter++; 
  private static int threadcount = 0; 
  public static int threadCount() {  
    return threadcount;  
  } 
  public JabberClientThread(InetAddress addr) { 
    System.out.println("Making client " + id); 
    threadcount++; 
    try { 
      socket =  
        new Socket(addr, 5000); 
    } catch(IOException e) { 
      // If the creation of the socket fails,  
      // nothing needs to be cleaned up. 
    } 
    try {     
      in =  
        new BufferedReader( 
          new InputStreamReader( 
            socket.getInputStream())); 
      // Enable auto-flush: 
      out =  
        new PrintWriter( 
          new BufferedWriter( 
            new OutputStreamWriter( 
              socket.getOutputStream())), true); 
      start(); 
    } catch(IOException e) { 
      // The socket should be closed on any  
      // failures other than the socket  
      // constructor: 
      try { 
        socket.close(); 
      } catch(IOException e2) {} 
    } 
    // Otherwise the socket will be closed by 
    // the run() method of the thread. 
  } 
  public void run() { 
    try { 
      for(int i = 0; i < 25; i++) { 
        out.println("Client " + id + ": " + i); 
        String str = in.readLine(); 
        System.out.println(str); 
      } 
      out.println("END"); 
    } catch(IOException e) { 
    } finally { 
      // Always close it: 
      try { 
        socket.close(); 
      } catch(IOException e) {} 
      threadcount--; // Ending this thread 
    } 
  } 
} 
 
public class MultiJabberClient { 
  static final int MAX_THREADS = 40; 
  public static void main(String[] args)  
      throws IOException, InterruptedException { 
    InetAddress addr =  
      InetAddress.getByName("106.13.46.152"); 
    while(true) { 
      if(JabberClientThread.threadCount()  
         < MAX_THREADS) 
        new JabberClientThread(addr); 
      Thread.currentThread().sleep(100); 
    } 
  } 
} ///:~

posted @ 2019-03-10 03:09  江期玉  阅读(221)  评论(0编辑  收藏  举报