使用手机搭建服务器,使用同一网段电脑访问
来源:互联网 发布:索尼产品培训专员 知乎 编辑:程序博客网 时间:2024/05/13 18:56
传输层协议可以分为TCP与UDP,下面分别介绍下这两种协议的特点。
TCP(Transmission Control Protocol):
1.面向连接
2.传输可靠
3.速度慢(传输效率低)
4.面向字节流
UDP(User Data Protocol):
1.无连接
2.传输不可靠
3.速度快(传输效率高)
TCP(Transmission Control Protocol):
1.面向连接
2.传输可靠
3.速度慢(传输效率低)
4.面向字节流
UDP(User Data Protocol):
1.无连接
2.传输不可靠
3.速度快(传输效率高)
4.面向报文
TCP与UDP的连接图解
应用场景
TCP的三次握手、四次挥手图
下面使用TCP连接实现手机搭建微服务器,使用同一网段的电脑通过命令来远程访问,必须是同一网段才可以访问。如在终端界面telnet 192.168.1.134 8088
工程结构
定义一个网页配置类
package com.dzt.androidservice;/** * Created by on 2016/9/20. */public class WebConfiguration {//端口号private int port;//最大监听数private int maxParallels;public int getPort() {return port;}public void setPort(int port) {this.port = port;}public int getMaxParallels() {return maxParallels;}public void setMaxParallels(int maxParallels) {this.maxParallels = maxParallels;}@Overridepublic String toString() {return "WebConfiguration{" +"port=" + port +", maxParallels=" + maxParallels +'}';}}定义一个Http服务器类
package com.dzt.androidservice;import android.util.Log;import java.io.IOException;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;/** * Created by on 2016/9/20. */public class SimpleHttpServer {private static String TAG = "SimpleHttpServer";private boolean isEnable;private WebConfiguration webConfig;private ServerSocket socket;private ExecutorService threadPool;public SimpleHttpServer(WebConfiguration webConfig){this.webConfig = webConfig;//创建一个线程池threadPool = Executors.newCachedThreadPool();}/** * 启动Server(异步) */public void startAsync(){isEnable = true;new Thread(new Runnable() {@Overridepublic void run() {doProcSync();}}).start();}private void doProcSync() {InetSocketAddress socketAddr = new InetSocketAddress(webConfig.getPort());try {socket = new ServerSocket();socket.bind(socketAddr);while (isEnable){final Socket remotePeer = socket.accept();Future future = threadPool.submit(new Runnable() {@Overridepublic void run() {Log.i(TAG, "a remote peer accepted..." + remotePeer.getRemoteSocketAddress().toString());onAcceptRemotePeer(remotePeer);}});//如果任务结束返回nullLog.i(TAG, "future = " + future.get());}}catch (Exception e) {e.printStackTrace();}}private void onAcceptRemotePeer(Socket remotePeer) {try {remotePeer.getOutputStream().write("congratulations, connected successful".getBytes());}catch (Exception e) {e.printStackTrace();}}/** * 停止Server(异步) */public void stopAsync(){threadPool.shutdownNow();if(!isEnable)return ;isEnable = false;try {if(!socket.isClosed()){socket.close();}socket = null;}catch (IOException e) {e.printStackTrace();}}}调用方法
package com.dzt.androidservice;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity {private SimpleHttpServer shs;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);WebConfiguration wc = new WebConfiguration();wc.setPort(8088);wc.setMaxParallels(50);shs = new SimpleHttpServer(wc);shs.startAsync();}@Overrideprotected void onDestroy() {super.onDestroy();shs.stopAsync();}}电脑与手机连接上同一Wifi后,在电脑终端上输入
终端上的IP是通过手机-设置-状态来查看的
打印
这个打印以在以下函数中
private void doProcSync() {InetSocketAddress socketAddr = new InetSocketAddress(webConfig.getPort());try {socket = new ServerSocket();socket.bind(socketAddr);while (isEnable){final Socket remotePeer = socket.accept();Future future = threadPool.submit(new Runnable() {@Overridepublic void run() {Log.i(TAG, "a remote peer accepted..." + remotePeer.getRemoteSocketAddress().toString());onAcceptRemotePeer(remotePeer);}});//如果任务结束返回nullLog.i(TAG, "future = " + future.get());}}catch (Exception e) {e.printStackTrace();}}
源码下载:http://download.csdn.net/detail/deng0zhaotai/9636711
1 0
- 使用手机搭建服务器,使用同一网段电脑访问
- 利用桥接实现OpenVPN客户端访问与服务器(windows)同一网段的其它电脑
- 使用自己电脑搭建一个外网可以访问的服务器tomcat本地搭建
- 使用自己电脑搭建一个外网可以访问的服务器tomcat本地搭建
- 手机访问电脑本地服务器
- 使用js判断是手机访问还是电脑访问
- 如何使用自己电脑搭建一个外网可以访问的服务器
- 使用自己电脑搭建一个外网可以访问的服务器tomcat
- 如何使用自己电脑搭建一个外网可以访问的服务器
- 不同网段访问访问同一oracle
- 使用DSS 搭建手机流媒体服务器
- 使用手机访问电脑上写的网页
- 同一局域网内电脑访问Tomcat服务器的方法
- android手机访问本地电脑Web服务器
- 手机访问 电脑虚拟机的服务器
- android手机如何访问电脑tomcat服务器
- 手机访问电脑上的服务器
- 手机访问电脑上的服务器
- 测试矩阵连续运算的速度问题的代码
- 第四周项目四
- 第四周项目四 建设双链表算法库
- adb shell 开启 Activity 随笔
- 第四周 项目六—— 循环双链表(2)
- 使用手机搭建服务器,使用同一网段电脑访问
- ajax之(2):json数据解析两种方式
- V尼熊的java之旅——基本类型与运算篇
- 第四周项目3(2)-单链表应用 链接单链表
- 心跳保活---TeamTalk心跳保活机制分析
- logstash获取php_error.log,php-fpm.log,php-fpm-slow.log
- SWift-iOS常用控件(UIProcessView进度条)
- Maya 导出动画到THREE.js
- win10下自动切换ip脚本