march alex's blog
          hello,I am march alex
          posts - 52,comments - 7,trackbacks - 0
          Client端:

          import java.io.DataInputStream;
          import java.io.DataOutputStream;
          import java.io.IOException;
          import java.net.InetAddress;
          import java.net.Socket;
          import java.net.UnknownHostException;
          import java.util.Scanner;

          public class ChatClient {
              
          private static final String SERVER_IP = "127.0.0.1";
              
          private static final int SERVER_PORT = 8888;
              
              Socket socket 
          = null;
              DataOutputStream dos 
          = null;
              DataInputStream dis 
          = null;
              
          private boolean bConnected = false;

              
          private static Scanner in = new Scanner(System.in);
              
          private static String hostInfo = null;

              Thread tRecv 
          = new Thread(new RecvThread());

              
          public static void main(String[] args) {
                  
          new ChatClient().launch();
              }

              
          public void launch() {
                  connect();
                  tRecv.start();
              }

              
          public void connect() {
                  
          try {
                      socket 
          = new Socket(SERVER_IP, SERVER_PORT);
                      dos 
          = new DataOutputStream(socket.getOutputStream());
                      dis 
          = new DataInputStream(socket.getInputStream());
                      bConnected 
          = true;

                      InetAddress addr 
          = InetAddress.getLocalHost();
                      String ip 
          = addr.getHostAddress().toString();// 獲得本機IP
                      String address = addr.getHostName().toString();// 獲得本機名稱
                      hostInfo = ip + "\t" + address + "\tconnected.";
                      System.out.println(hostInfo);
                      dos.writeUTF(hostInfo);
                      dos.flush();
                  } 
          catch (UnknownHostException e) {
                      e.printStackTrace();
                  } 
          catch (IOException e) {
                      e.printStackTrace();
                  }
              }

              
          public void disconnect() throws IOException {
                  
          try {
                      dos.close();
                      dis.close();
                      socket.close();
                  } 
          catch (IOException e) {
                  }
              }

              
          private class RecvThread implements Runnable {
                  
          public void run() {
                      
          while (bConnected) {
                          
          try {
                              
          if (in.hasNext()) {
                                  String talk 
          = in.nextLine();
                                  
          if (talk.equals("quit")) {
                                      disconnect();
                                      bConnected 
          = false;
                                      
          break;
                                  }
                                  dos.writeUTF(talk);
                                  dos.flush();
                              }
                              String talk 
          = dis.readUTF();
                              System.out.println(talk);
                          } 
          catch (IOException e) {
                              e.printStackTrace();
                          }
                      }
                  }
              }
          }
          server端:
          import java.io.DataInputStream;
          import java.io.DataOutputStream;
          import java.io.EOFException;
          import java.io.IOException;
          import java.net.BindException;
          import java.net.ServerSocket;
          import java.net.Socket;
          import java.util.ArrayList;
          import java.util.List;

          public class ChatServer {
              
          boolean started = false;
              ServerSocket ss 
          = null;
              
              List
          <Client> clients = new ArrayList<Client>();
              
              
          public static void main(String[] args) {
                  
          new ChatServer().start();
              }
              
              
          public void start() {
                  
          try {
                      ss 
          = new ServerSocket(8888);
                      started 
          = true;
                  } 
          catch (BindException e) {
                      System.err.println(
          "port in use.please stop program using this port and restart.");
                      System.exit(
          0);
                  } 
          catch (IOException e) {
                      e.printStackTrace();
                  }
                  
                  
          try {
                      
          while(started) {
                          Socket s 
          = ss.accept();
                          Client c 
          = new Client(s);
                          
          // System.out.println("a client connected.");
                          new Thread(c).start();
                          clients.add(c);
                      }
                  } 
          catch (IOException e) {
                      e.printStackTrace();
                  } 
          finally {
                      
          try {
                          ss.close();
                      } 
          catch (IOException e) {
                          e.printStackTrace();
                      }
                  }
                  
              }
              
              
          class Client implements Runnable {
                  
          private Socket s;
                  
          private DataInputStream dis = null;
                  
          private DataOutputStream dos = null;
                  
          private boolean bConnected = false;
                  
                  
          public Client(Socket s) {
                      
          this.s = s;
                      
          try {
                          dis 
          = new DataInputStream(s.getInputStream());
                          dos 
          = new DataOutputStream(s.getOutputStream());
                          bConnected 
          = true;
                      } 
          catch (IOException e) {
                          e.printStackTrace();
                      }
                  }
                  
                  
          public void send(String str) {
                      
          try {
                          dos.writeUTF(str);
                          dos.flush();
                      } 
          catch (IOException e) {
                          clients.remove(
          this);
                          System.out.println(
          "a client quit.");
                          
          //e.printStackTrace();
                      }
                  }
                  
                  
          public void run() {
                      
          try {
                          
          while(bConnected) {
                              String str 
          = dis.readUTF();
                              solveTalk(str);
                          }    
                      } 
          catch (EOFException e) {
                          System.out.println(
          "Client closed!");
                      } 
          catch (IOException e) {
                          e.printStackTrace();
                      } 
          finally {
                          
          try {
                              
          if(dis != null) dis.close();
                              
          if(dos != null) dos.close();
                              
          if(s != null) {
                                  s.close();
                                  s 
          = null;
                              }
                          } 
          catch (IOException e1) {
                              e1.printStackTrace();
                          }
                      }
                  }
                  
                  
          private void solveTalk(String talk) {
                      System.out.println(talk);
                      
          for(int i=0;i<clients.size();i++) {
                          Client c 
          = clients.get(i);
                          c.send(talk);
                      }
                  }
              }
              
          }
          posted @ 2015-08-18 10:03 marchalex 閱讀(365) | 評論 (0)編輯 收藏

          import java.io.BufferedInputStream; 
          import java.io.BufferedReader; 
          import java.io.IOException; 
          import java.io.InputStreamReader; 
          import java.util.regex.Matcher; 
          import java.util.regex.Pattern; 
           
          public class RegexTestHarnessV4 { 
           
              
          public static void main(String[] args) throws IOException { 
                  BufferedReader br 
          = new BufferedReader( 
                          
          new InputStreamReader(new BufferedInputStream(System.in)) 
                      ); 
                  
          while (true) { 
                      System.out.print(
          "\nEnter your regex: "); 
                      Pattern pattern 
          = Pattern.compile(br.readLine()); 
                      System.out.print(
          "Enter input string to search: "); 
                      Matcher matcher 
          = pattern.matcher(br.readLine()); 
                      
          boolean found = false
                      
          while (matcher.find()) { 
                          System.out.println(
          "I found the text \"" + matcher.group() + 
                                  "\" starting at index " + matcher.start() + 
                                  " and ending at index " + matcher.end() + 
                                  
          "."); 
                          found 
          = true
                      } 
                      
          if (!found) { 
                          System.out.println(
          "No match found."); 
                      } 
                  } 
              } 
          }


          樣例:

          Enter your regex: [0-9]+
          Enter input string to search: fdsdffd9090fd
          I found the text "9090" starting at index 7 and ending at index 11.

          Enter your regex: class="fav-num[^"]*"[^>]*>[^<]*
          Enter input string to search: <i class="litb-icon-fav-on"></i><i class="litb-icon-fav-off"></i><span class="fav-num">(151)</span>
          I found the text "class="fav-num">(151)" starting at index 71 and ending at index 92.

          資料:
          http://blog.csdn.net/yaerfeng/article/details/28855587
          posted @ 2015-08-12 13:58 marchalex 閱讀(318) | 評論 (0)編輯 收藏
          import java.io.BufferedReader;
          import java.io.FileNotFoundException;
          import java.io.FileReader;
          import java.io.IOException;
          import java.io.InputStreamReader;
          import java.net.HttpURLConnection;
          import java.net.MalformedURLException;
          import java.net.URL;
          import java.net.URLEncoder;
          import java.util.ArrayList;
          import java.util.List;
          import java.util.Scanner;

          public class GoogleFinderNew {
              
              
          private static String address = "https://www.google.com.hk/search?hl=en&q=";
              
          private static String query = "";
              
          private static String charset = "UTF-8";
              
              
          private static List<String> useragentList = new ArrayList<String>();
              
              
          private static void initUserAgentList(String filename) throws IOException {
                  BufferedReader reader 
          = new BufferedReader(new FileReader(filename));  
                  String line 
          = null;
                  
          while((line = reader.readLine()) != null){
                      useragentList.add(line.trim());
                  }
                  reader.close();
                  
          return;
              }
              
              
          private static List<String> getpages(URL url) throws IOException {
                  HttpURLConnection urlConnection 
          = (HttpURLConnection) url.openConnection();
                  BufferedReader reader 
          = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
                  String line;
                  String ans 
          = "";
                  
          while ((line = reader.readLine()) != null){
                       ans 
          += line + "\n";
                  }
                  
          int st = -1, ed = 0;
                  List
          <String> pagesList = new ArrayList<String>();
                  
                  
          while((st = ans.indexOf("<h3 class=\"r\"><a href=\"", ed)) != -1) {
                      ed = ans.indexOf("\"", st+23);
                      //System.out.println(ans.substring(st+23, ed));
                      pagesList.add(ans.substring(st+23, ed));
                  }
                  
          return pagesList;
              }
              
              
          public static void main(String[] args) throws MalformedURLException, IOException, InterruptedException {
                  
                  Scanner in 
          = new Scanner(System.in);
                  String askurl 
          = in.nextLine();
                  query 
          = in.nextLine();
                  
                  initUserAgentList(
          "D:\\useragent.txt");
                  
                  
          //System.setProperty("http.agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.3.154.9 Safari/525.19");
                  
                  
          int pages = 10;
                  
                  
          for(int i=0;i<pages;i++) {
                      System.out.println((i
          +1+ " ..");
                      
                      
          int index = (int)(useragentList.size()*Math.random());
                      
          if(index == useragentList.size()) index --;
                      String theUserAgent 
          = useragentList.get(index);
                      
                      System.setProperty(
          "http.agent", theUserAgent);
                      
                      String urlString 
          = address + URLEncoder.encode(query, charset);
                      
          if(i != 0) urlString += "&start=" + i + "0";
                      
          //System.out.println(urlString);
                      List<String> list = getpages(new URL(urlString));
                      
          for(String page : list) {
                          
          if(page.contains(askurl)) {
          //                if(page.equals(askurl)) {
                              System.out.println(askurl + " found in the " + (i+1+ " th page.");
                              System.out.println(page);
                              
          return;
                          }
                      }
                      
          int extraTime = 0//(int)(3000 * Math.random());
                      Thread.sleep(1000 + extraTime);
                  }
                  
                  System.out.println(
          "can't find " + askurl + " in the first " + pages + " pages.");
              }
          }
          posted @ 2015-07-29 16:41 marchalex 閱讀(268) | 評論 (0)編輯 收藏
          import java.io.BufferedReader;
          import java.io.IOException;
          import java.io.InputStreamReader;
          import java.io.Reader;
          import java.net.HttpURLConnection;
          import java.net.URL;
          import java.net.URLEncoder;
          import java.util.List;
          import java.util.Scanner;
          import java.util.StringTokenizer;

          import com.google.gson.Gson;



          public class GoogleFinder {
              
              
          public static void main(String[] args) throws IOException, InterruptedException {
                  
                  String address 
          = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=";
                  String query 
          = "";
                  String charset 
          = "UTF-8";
                  
                  Scanner in 
          = new Scanner(System.in);
                  String targeturl 
          = in.nextLine();
                  query 
          = in.nextLine();
                  
                  
          for(int i=0;i<125;i++) {
                      
                      URL url 
          = new URL(address + URLEncoder.encode(query, charset) + "&start=" + i);
                      
                      
          //System.out.println(url);
                      Reader reader = new InputStreamReader(url.openStream(), charset);
                      GoogleResults results 
          = new Gson().fromJson(reader, GoogleResults.class);
                      
                      
          for(int t=0;t<30;t++) {
                          System.out.print(
          ".");
                          Thread.sleep(
          2000);
                      } System.out.println(
          "");
                      
                      
          for(int j=0;j<4;j++) {

                          String ss 
          = results.getResponseData().getResults().get(j).getUrl().toLowerCase();
                          
          if(ss.contains(targeturl)) {
                              System.out.println(ss);
                              System.out.println(results.getResponseData().getResults().get(j).getTitle());
                              System.out.println(
          "Found in the " + (i*4+j+1+ " th");
                              
          return;
                          }
                      }
                      System.out.println(
          "" + ((i+1)*4+ " pages found.");
                  }
                  
                  System.out.println(
          "Can find " + targeturl + " in the first 500 pages");
                  
              }
          }


          class GoogleResults {

              
          private ResponseData responseData;

              
          public ResponseData getResponseData() {
                  
          return responseData;
              }

              
          public void setResponseData(ResponseData responseData) {
                  
          this.responseData = responseData;
              }

              
          public String toString() {
                  
          return "ResponseData[" + responseData + "]";
              }

              
          static class ResponseData {
                  
          private List<Result> results;

                  
          public List<Result> getResults() {
                      
          return results;
                  }

                  
          public void setResults(List<Result> results) {
                      
          this.results = results;
                  }

                  
          public String toString() {
                      
          return "Results[" + results + "]";
                  }
              }

              
          static class Result {
                  
          private String url;
                  
          private String title;

                  
          public String getUrl() {
                      
          return url;
                  }

                  
          public String getTitle() {
                      
          return title;
                  }

                  
          public void setUrl(String url) {
                      
          this.url = url;
                  }

                  
          public void setTitle(String title) {
                      
          this.title = title;
                  }

                  
          public String toString() {
                      
          return "Result[url:" + url + ",title:" + title + "]";
                  }
              }
          }

          posted @ 2015-07-29 14:16 marchalex 閱讀(287) | 評論 (0)編輯 收藏
          import java.io.BufferedReader;
          import java.io.IOException;
          import java.io.InputStreamReader;
          import java.net.HttpURLConnection;
          import java.net.MalformedURLException;
          import java.net.URL;
          import java.net.URLEncoder;
          import java.util.ArrayList;
          import java.util.List;
          import java.util.Scanner;

          public class GoogleFinderNew {
              
              
          private static String address = "https://www.google.com.hk/search?hl=en&q=";
              
          private static String query = "";
              
          private static String charset = "UTF-8";
              
              
          private static void test() {
                  String ans 
          = "abc<h3>helloworld</h3>hehe<h3>nicetomeetyou</h3>";
                  
          int st = ans.indexOf("<h3>");
                  
          int ed = ans.indexOf("</h3>");
                  System.out.println(st 
          + "   " + ed);
                  System.out.println(ans.substring(st
          +4, ed));
              }
              
              
          private static List<String> getpages(URL url) throws IOException {
                  HttpURLConnection urlConnection 
          = (HttpURLConnection) url.openConnection();
                  BufferedReader reader 
          = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
                  String line;
                  String ans 
          = "";
                  
          while ((line = reader.readLine()) != null){
                       ans 
          += line + "\n";
                  }
                  
          int st = -1, ed = 0;
                  List
          <String> pagesList = new ArrayList<String>();
                  
                  
          while((st = ans.indexOf("<h3 class=\"r\"><a href=\"", ed)) != -1) {
                      ed = ans.indexOf("\"", st+23);
                      //System.out.println(ans.substring(st+23, ed));
                      pagesList.add(ans.substring(st+23, ed));
                  }
                  
          return pagesList;
              }
              
              
          public static void main(String[] args) throws MalformedURLException, IOException, InterruptedException {
                  
                  Scanner in 
          = new Scanner(System.in);
                  String askurl 
          = in.nextLine();
                  query 
          = in.nextLine();
                  
                  System.setProperty(
          "http.agent""Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11");
                  
                  
          int pages = 100;
                  
                  
          for(int i=0;i<pages;i++) {
                      System.out.println((i
          +1+ " ..");
                      String urlString 
          = address + URLEncoder.encode(query, charset);
                      
          if(i != 0) urlString += "&start=" + i + "0";
                      
          //System.out.println(urlString);
                      List<String> list = getpages(new URL(urlString));
                      
          for(String page : list) {
                          
          if(page.contains(askurl)) {
          //                if(page.equals(askurl)) {
                              System.out.println(askurl + " found in the " + (i+1+ " th page.");
                              System.out.println(page);
                              
          return;
                          }
                      }
                      Thread.sleep(
          1000);
                  }
                  
                  System.out.println(
          "can't find " + askurl + " in the first " + pages + " pages.");
              }
          }
          posted @ 2015-07-29 14:16 marchalex 閱讀(308) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 邢台市| 惠来县| 固镇县| 汉中市| 郁南县| 璧山县| 菏泽市| 磐安县| 元谋县| 大庆市| 桦甸市| 新建县| 东乌珠穆沁旗| 宝丰县| 乌拉特中旗| 阿图什市| 民勤县| 彩票| 开江县| 安达市| 乳源| 萨迦县| 北安市| 文昌市| 民丰县| 区。| 驻马店市| 赤峰市| 扶沟县| 潼南县| 陇南市| 建湖县| 阳东县| 成都市| 元阳县| 镇原县| 开江县| 会昌县| 绥宁县| 肥城市| 南安市|