首页 > 代码库 > 客户端socket调用

客户端socket调用

技术分享
 1 import java.net.Socket; 2 import java.io.*; 3 import java.util.Scanner; 4 import java.util.regex.Pattern; 5 import java.util.regex.Matcher; 6  7 class SocketTest 8 { 9     public static void main(String[] args) 10     {        11         Scanner sc=new Scanner(System.in);12         System.out.println("please input ipaddress:");13         boolean isIp=false;14         String strIp="";15         //ip正则匹配16         Pattern pattern=Pattern.compile("((?:(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))\\.){3}(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d))))");17         while(!isIp){18         //System.out.println(isIp);    19         strIp=sc.next();        20         Matcher matcher=pattern.matcher(strIp);21         //如果输入的数据满足ip格式,继续运行22         if(matcher.matches()){23             isIp=true;24             }25             else{26                 System.out.println("the ip is wrong,please input again:");27             }28         }            29         int port=80;30         boolean isNu=false;31         //如果输入的为正确的端口号(整数)继续运行32         while(!isNu){33         try{34             System.out.println("please input port");35             String strPort=sc.next();36             port=Integer.parseInt(strPort);37             isNu=true;38             }catch(Exception ex){39                 System.out.println("is not int ,please input agein:");40             }41         }42 43         System.out.println("the ip is :"+strIp);44         System.out.println("the port is :"+port);45         if(strIp!=null&&strIp.length()>0){46             try{47                 //通过ip和端口创建socket实例48                 Socket socket=new Socket(strIp,port);49                 //获取socket的输出流50                 OutputStream  outputStream=socket.getOutputStream();51                 //讲http请求头信息输入至socket输出流中52                 PrintWriter out=new PrintWriter(outputStream,true);53                 out.println("GET / HTTP/1.1");  //get 请求,获取目录为/ http协议为http 1.154                 out.println("Host: localhost:8888");55                 out.println("Connection: Close");56                 out.println();57                 //接收服务端返回的数据流58                 BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));59                 boolean loop=true;60                 StringBuffer sb=new StringBuffer(8096);61                 while(loop){62                     if ( in.ready() ) {63                         int i=0;64                         while (i!=-1) {65                             i = in.read();66                             sb.append((char) i);67                         }68                     loop = false;69                     Thread.currentThread().sleep(50);70                     }71                 }72                 System.out.println(sb.toString());73                 socket.close();74             }75                 catch (Exception ex) {76                     ex.printStackTrace();77                     System.out.println(ex.toString());78             }79         }80     }81 }
View Code

 

客户端socket调用