当前位置: 首页 > news >正文

网站首页怎么做成都网站建设 四川冠辰网站建设

网站首页怎么做,成都网站建设 四川冠辰网站建设,工厂订单外发代加工外发加工网,易讯网站建设背景:安卓设备通过usb网络共享给Linux,此时安卓设备与linux处于同一网络环境,符合使用socket的条件,linux做客户端,安卓做服务端 1.QT使用Socket (1).在工程文件中加入 QT network (2).导包以及写一些槽函数用做数据传输与状态接收 #ifndef MAINWINDOW_H #define MAINWINDOW… 背景:安卓设备通过usb网络共享给Linux,此时安卓设备与linux处于同一网络环境,符合使用socket的条件,linux做客户端,安卓做服务端 1.QT使用Socket (1).在工程文件中加入 QT network (2).导包以及写一些槽函数用做数据传输与状态接收 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include QtNetwork/QTcpSocket #include QMainWindow #include QTcpServer #include QTimernamespace Ui { class MainWindow; }class MainWindow : public QMainWindow {Q_OBJECTpublic:explicit MainWindow(QWidget *parent nullptr);~MainWindow();public slots://用做读取服务端发送的数据void readData();//获取当前socket的连接状态void displayError(QAbstractSocket::SocketError);private:Ui::MainWindow *ui;QTcpSocket *socket; };#endif // MAINWINDOW_H(3).实现Socket的数据互发与接收 #include mainwindow.h #include ui_mainwindow.h #include QFile #include QTextCodec #include QDebug #include QFontDatabaseMainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) {ui-setupUi(this);socket new QTcpSocket(this);socket-abort();//这个地方是重点,因为安卓端我没有设置ip,那么这里的ip就是USB共享所分配的ip,可以进入安卓端使用ifconfig获取到ip地址//端口9999是我在安卓服务端设置的,等会安卓端代码会有写socket-connectToHost(192.168.XXX,9999);connect(socket, QTcpSocket::readyRead, this, MainWindow::readData);connect(socket, SIGNAL(error(QAbstractSocket::SocketError)),this, SLOT(displayError(QAbstractSocket::SocketError))); }void MainWindow::readData() {qDebug() ******************************clein********************************;QString data socket-readAll();QTextCodec* codec QTextCodec::codecForName(UTF-8);QString strData codec-toUnicode(data.toUtf8());qDebug() readData messagestrData; // 输出 11111qDebug() ******************************clein********************************\n;/*******************************读取到数据以后自动发送数据给服务端**********************************/// 用于暂存要发送的数据QString datas on_pushButton_2_clicked; // 要发送的数据// 将数据转换为 UTF-8 编码QTextCodec* codecs QTextCodec::codecForName(UTF-8);QByteArray utf8Data codecs-fromUnicode(datas);// 发送数据socket-write(utf8Data);socket-flush();}void MainWindow::displayError(QAbstractSocket::SocketError){qDebug() displayError errorsocket-errorString();}MainWindow::~MainWindow() {delete ui; } 到这里QT代码就写完了,接下来我们看一下安卓端的发送与接收: 2.安卓使用Socket,直接上服务端代码(Kotlin) package com.jk.rtkimport android.content.Context import android.net.ConnectivityManager import android.net.wifi.WifiManager import android.os.Build import android.util.Log import java.io.IOException import java.io.InputStream import java.io.OutputStreamWriter import java.net.* import java.util.*object SocketServer {private val TAG SocketServer::class.java.simpleNamevar SOCKET_PORT 9999private var socket: Socket? nullprivate var serverSocket: ServerSocket? nullprivate lateinit var mCallback: ServerCallbackvar result true/*** 开启服务*/fun startServer(callback: ServerCallback): Boolean {Log.i(TAG, startServer: )mCallback callbackThread {try {serverSocket ServerSocket(SOCKET_PORT)while (result) {socket serverSocket?.accept()mCallback.otherMsg(${socket?.inetAddress} to connected)ServerThread(socket!!, mCallback).start()}} catch (e: IOException) {e.printStackTrace()result false}}.start()return result}/*** 关闭服务*/fun stopServer() {Log.i(TAG, stopServer: )socket?.apply {//shutdownInput()//shutdownOutput()close()}serverSocket?.close()}/*** 发送到客户端*/fun sendToClient(msg: String) {Thread {if (socket!!.isClosed) {Log.e(TAG, sendToClient: Socket is closed)returnThread}Log.e(TAG, sendToClient: msg$msg)try {val out OutputStreamWriter(socket!!.getOutputStream(), UTF-8)out.write(msg)out.flush()mCallback.otherMsg(toClient: $msg)Log.d(TAG, 发送到客户端成功)} catch (e: IOException) {e.printStackTrace()Log.e(TAG, 向客户端发送消息失败)}}.start()}/** 获取USB共享的ip地址* */fun getUsbTetheringIpAddress(): String? {try {val interfaces: EnumerationNetworkInterface NetworkInterface.getNetworkInterfaces()while (interfaces.hasMoreElements()) {val intf: NetworkInterface interfaces.nextElement()val addresses intf.interfaceAddressesfor (addr in addresses) {if (Build.VERSION.SDK_INT Build.VERSION_CODES.LOLLIPOP) {if (addr.networkPrefixLength 16 !addr.address.isLinkLocalAddress) {return addr.address.hostAddress}} else {if (addr.address.isSiteLocalAddress !addr.address.isLinkLocalAddress) {return addr.address.hostAddress}}}}} catch (e: Exception) {e.printStackTrace()}return null}class ServerThread(private val socket: Socket, private val callback: ServerCallback) :Thread() {override fun run() {val inputStream: InputStream?try {inputStream socket.getInputStream()val buffer ByteArray(1024)var len: Intvar receiveStr if (inputStream.available() 0) {Log.e(TAG, inputStream.available() 0)}while (inputStream.read(buffer).also { len it } ! -1) {receiveStr String(buffer, 0, len, Charsets.UTF_8).trim()if (len 1024) {Log.e(TAG, inputStream.receiveStr $receiveStr)callback.receiveClientMsg(true, receiveStr)receiveStr }}} catch (e: IOException) {e.printStackTrace()e.message?.let { Log.e(socket error, it) }callback.receiveClientMsg(false, )}}} } 调用方式:这里用的java方式 (1).先启动服务 与回调函数boolean isSocket SocketServer.INSTANCE.startServer(new ServerCallback() {Overridepublic void receiveClientMsg(boolean success, NonNull String msg) {Log.e(TAG, SocketServer receiveClientMsg success success msg msg);}Overridepublic void otherMsg(NonNull String msg) {Log.e(TAG, SocketServer otherMsg msg msg);}});(2).发送数据: SocketServer.INSTANCE.sendToClient(json); linux运行截图 安卓端运行截图
http://www.zqtcl.cn/news/221931/

相关文章:

  • 域名估价网站制作网站需要注意什么
  • 新浪云虚拟主机做电影网站用什么l软件做网站了
  • 方城网站建设猴痘的治疗方法
  • 做响应式网站有什么插件哔哩哔哩免费安装
  • 织梦网站默认密码wordpress菜单页和文章页路径不同
  • 那些网站可以做兼职网站建设与维护 东博
  • 快速建站的模板建设银行嘉兴分行官方网站
  • 江西智能网站建设wordpress三栏博客主题
  • 怎么做网站账号注册机sem竞价
  • 吕梁建设机械网站怎么让网站排名上去
  • 网站建设的需要分析龙岗招聘网
  • 如何制作企业的网站网站开发答辩ppt
  • 大连中山网站建设网站在线qq代码
  • 南昌seo网站微商城网站建设如何
  • anker 网站建设手机可以做网站的服务器吗
  • 门户网站建设 报价没有网页快照对网站有什么影响
  • 陕西专业网站建设哪家好甜点网站里的新闻资讯怎么做
  • 邯郸企业网站团队h5微场景制作软件
  • 镇江建工建设集团网站泛微e8做网站门户
  • 适合友情链接的网站全球软件公司排行榜
  • 沈阳网站制作 600元网站飘动广告代码
  • 最先进的无锡网站建设wordpress调用 别的网站
  • 河南网站备案地址静安青岛网站建设
  • 烟台网站建设推荐企汇互联见效付款查看网站被百度收录
  • 做标签网站360街景地图怎么看
  • 深圳网站建设领先天津建设企业网站
  • 网站建设犭金手指C排名15温州 建网站的公司
  • 邢台建设银行官方网站公众号开发者密码是什么意思
  • 网站录入信息 前台查询功能怎么做营销网站主题有哪些内容
  • 网站SEO的评价触屏音乐网站源码