• JAVA TCP/IP Socket通信机制以及应用


    关于局域网通信(同一wifi下,自己电脑当服务端,同一网络段)

    1.例如192.168.1.x,只有x位不相同视为同一网络段

    2.当具备了以上条件,即可编写服务端代码,服务端的机制。

    3.ServerSocket s = new ServerSocket(8888);  //监听8888端口

    4.开启线程,加入读写消息流。

    5.读取每一个用户的消息,写入每一个用户

    客户端

    1.打开cmd,查询自己电脑所在IP地址(当做服务端的电脑),博主连接的是WiFi,查到的IP为192.168.1.135

    2.编写客户端,客户端和服务器的机制相同

    3.Socket s  = new Socket("192.168.1.135",8888);

    4.开启与服务端交互的线程,加入读写消息流.

    5.发送消息,并读取服务器发来的消息,显示在消息面板上

    关于广域网通信(首先你得买个服务器,这里买的是腾讯云1元学生专用)

    1.买了服务器后,邮件里面会收到一个ip,和远程桌面

    2.连接远程桌面,并将自己的JAVA服务端打包成.jar文件,带上JDK的jre运行环境,放在jar文件同一目录下

    在远程桌面上运行这个服务端,具体命令为java -jar xx.jar

    3.和局域网通信一致,不同的只要IP改为服务端的IP就行了

    4.这样无论你用什么网络都可以实现通信机制了

    关于安卓客户端之间通信,安卓客户端和电脑之间通信

    1.当有了服务器之后,通信问题基本解决,方法极其类似

    2.唯一不同的就是,安卓线程问题,还有安卓配置文件里面需要加入联网权限

    3.安卓不允许网络线程在主线程里面操作,所以你得new另外一个线程实现socket

    4.安卓很难实现长连接,基本都是靠每一次操作new 一个socket 用完后close

    5.可以考虑JNI,博主使用的方法是第4点提到的

    6.一般来说,需要开启三个线程,读消息,写消息,将消息绘制在UI界面上

    7.在这里有很多坑,我想说一下readLine的阻塞问题,这个很烦,百度上有很多解决方法

  • 相关阅读:
    VS2019 技巧
    html5-Canvas
    JS动画三剑客——setTimeout、setInterval、requestAnimationFrame
    C# 从1到Core--委托与事件
    ILSpy工具使用
    .NET 表达式计算:Expression Evaluator
    jQuery.globalEval()方法
    jquery的eval的使用
    js中的eval方法
    设计模式速查手册
  • 原文地址:https://www.cnblogs.com/Ten10/p/Ten22.html
Copyright © 2020-2023  润新知