scoket客户端扫描电脑可用端口小demo
来源:互联网 发布:什么是编程语言 编辑:程序博客网 时间:2024/05/19 17:50
客户端Socket
1、网络由下往上分为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层
2、TCP/IP协议是网络传输层协议,主要解决数据如何在网络中传输。Http是应用层协议,主要解决如何包装数据
3、实际上Socket是对TCP/IP协议的封装,它是一个调用接口(API)
4、利用Socket扫描服务器可用端口
5、发送和接收数据
1.Socket.getInputStream
2.Socket.getOutputStream
1、网络由下往上分为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层
2、TCP/IP协议是网络传输层协议,主要解决数据如何在网络中传输。Http是应用层协议,主要解决如何包装数据
3、实际上Socket是对TCP/IP协议的封装,它是一个调用接口(API)
4、利用Socket扫描服务器可用端口
5、发送和接收数据
1.Socket.getInputStream
2.Socket.getOutputStream
2、模拟Http的请求
下面是代码:
import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import java.net.InetSocketAddress;import java.net.Socket;import java.net.SocketAddress;public class MainActivity extends AppCompatActivity { private Button btn; private TextView tv; //使用异步线程更新UI private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { //该方法追加内容的方法,类似于StringBuffer里面的append(); tv.append(String.valueOf(msg.what)+"OK\n"); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.start); tv = (TextView) findViewById(R.id.showIP_tv); btn.setOnClickListener(new ButtonClikListener()); } private class ButtonClikListener implements View.OnClickListener { @Override public void onClick(View view) { switch (view.getId()){ case R.id.start: scanPorts(); break; default: break; } } } private void scanPorts(){ //启动线程 new ScanPorts(5000,0).start(); } class ScanPorts extends Thread{ private int minPort;//最小端口号 private int maxPort;//最大端口号 public ScanPorts(int maxPort,int minPort){ this.maxPort = maxPort; this.minPort = minPort; } @Override public void run() { for (int i = minPort; i < maxPort; i++){ //创建客户端 Socket socket = new Socket(); //设置扫描IP和端口号 //InetSocketAddress是SocKetAddress的子类 SocketAddress socketAddress = new InetSocketAddress("10.114.15.238",i); try { //建立连接的方法 //第一个参数代表连接的地址,第二个参数代表延迟50ms socket.connect(socketAddress,50); //连接成功之后给handler发送消息,通知塔更新TextView handler.sendEmptyMessage(i); //连接成功后关闭socket socket.close(); } catch (Exception e) { e.printStackTrace(); } } } }}前端就一个Button和一个TextView就不发了
注意在清单文件里加上
<uses-permission android:name="android.permission.INTERNET"/>
0 0
- scoket客户端扫描电脑可用端口小demo
- Python -- 扫描局域网可用端口
- Scoket通讯Demo
- 手动关闭电脑端口,防止扫描
- Scoket网络编程客户端
- Scoket客户端实例
- Scoket 简单聊天室 服务器+客户端
- android Scoket 网络对战DEMO
- 扫描端口
- 扫描端口
- 无需客户端探测远端电脑已开放的TCP 端口
- 利用select接收串口数据 亲测可用小demo
- Scoket
- Scoket
- C# Scoket 简单的服务器客户端通讯
- 电脑端口
- 电脑端口
- 仿网易新闻客户端UI界面小Demo
- 全参考客观视频质量评价方法 (MSE, PSNR,SSIM)原理
- 编译工具
- 回溯法在排列组合问题中的应用
- mkv210_image.c
- HAProxy+Keepalived配置邮件报警,会话保存机制和TCP端口范围(三)
- scoket客户端扫描电脑可用端口小demo
- pat-a1090. Highest Price in Supply Chain (25)
- Sping框架概述
- 数据库系统常用的存取方法
- sed、awk
- ireport + jasperreport报表使用 Parameters传递 where或 group by异常解决
- 六个通用寄存器的特定用途
- Linux的第二天(安装Eclipse和FFmpeg)
- POJ 3249 Test for Job