• 客户端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.1
    54                 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
  • 相关阅读:
    C# 重载,重写,代理,枚举实例
    关于C#7 新语法糖
    关于C# 异步
    经验
    C# 后台模块 Word 模板操作
    .Net 图片生成水印
    .Net XML操作
    .Net web 关于表单标题
    分页存储过程
    python 爬虫 猫眼视频榜单top100
  • 原文地址:https://www.cnblogs.com/kurt/p/4269840.html
Copyright © 2020-2023  润新知