在 wifi 局域网下,手机可以和电脑通过 socket 通信。手机做服务端,电脑做客户端;也可 以反过来,电脑做服务端,手机做客户端。 下面介绍的是手机作为服务端,电脑使用 MFC 编程作为客户端,原理是,手机建立一个 ServerSocket,并获取自己的 ip 地址和端口 port;然后电脑通过 socket 连接手机的 ip:port 。 手机建立 socketServer 代码 private ServerSocket serverSocket = null; private Runnable mcreateRunnable = new Runnable() { public void run() { try { serverSocket = new ServerSocket(0);//系统分配端口 getLocalIpAddress();//获得手机的 ip 地址 //方法用于等待客服连接 mSocketServer = serverSocket.accept(); //接受客服端数据 BufferedReader 对象 mBufferedReaderServer = new BufferedReader(new InputStreamReader(mSocketServer.getInputStream())); //给客服端发送数据 mPrintWriterServer = new PrintWriter(mSocketServer.getOutputStream(),true); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }; 手机上获取的 ip 地址代码 public String getLocalIpAddress() { try { for (Enumeration en=NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for (Enumeration enumIpAddr=intf.getInetAddresses();enumIpAddr.hasMoreElements();) { InetAddress inetAddress = enumIpAddr.nextElement(); //if (!inetAddress.isLoopbackAddress()) { //if(inetAddress.isSiteLocalAddress()) { String ip = “请连接 IP:“+inetAddress.getHostAddress()+“:“ + serverSocket.getLocalPort()+ ““; } } } } } catch (SocketException ex) { ex.printStackTrace(); } } 电脑上使用的是 MFC 编程, socket 代码如下 DWORD clientThreadID; SOCKET clientSock; char server_address[50] = {0}; char recv_message_client[256] = {0}; struct sockaddr_in server_ip; BOOL clientThreadRun = false; //client BOOL InItClientSock() { //Define Variable WORD wVersionrequested; WSADATA wsaData; wVersionrequested = MAKEWORD(2,0); //Start Sock int err = WSAStartup(wVersionrequested, if (err == -1) { MessageBox(0,“WSAStartup err“, “error“,MB_OK); return FALSE; } return TRUE; } BOOL ConnectSock() { SOCKET clientSockConnect; u_short port; //Ini Sock clientSock = socket(AF_INET,SOCK_STREAM,0); if (ServerSock 2) ) { port = atoi(strPort+1); if(port==0) { MessageBox(0, “IP 端口不对, 参考例子:192.168.12.134:8981“, “提示“, MB_OK); return FALSE; } memset(strPort, 0, sizeof(strPort)); } else { MessageBox(0, “IP 地址不对, 参考例子:192.168.12.134:8981“, “提示 “, MB_OK); return FALSE; } //Connect server_ip.sin_family = AF_INET; server_ip.sin_port = ((port temp.Format(“接收到的信息:%s“,recv_message_client); SetDlgItemText(FindWindow(NULL, WINDOWNHANDLERNAME), IDC_STATIC_IP, temp); analyseCommand(recv_message_client); memset(recv_message_client, 0, sizeof(recv_message_client)); } temp.Format(“接收到的信息:%s“,recv_message_client); } return 0; }

展开阅读全文

mfc作为服务端,android作为客服端进行socket通讯,android在wifi下手机与电脑的socket通信...相关推荐

  1. (银行简单的管理系统)java实训小型应用开发——数据库,GUI、客服端

    一个简单的小型应用,用于模拟银行存取. 基于java多线程,GUI.操作数据库,客服端服务端. GUI界面的代码: 登录界面 package com.Gui; import java.awt.*; i ...

  2. 【转载】android客服端+eps8266+单片机+路由器之远程控制系统

    用android客服端+eps8266+单片机+路由器做了一个远程控制的系统,因为自己是在实验室里,所以把实验室的门,灯做成了远程控制的. 控制距离有多远------只能说很远很远,只要你手机能上网的 ...

  3. (复习)android 调用系统相机 图库 裁剪-图片上传-客服端-服务器

    引用转载http://www.cnblogs.com/eyu8874521/archive/2012/07/20/2600697.html 效果: 客服端代码: package com.cn.lxz. ...

  4. iOS开发-使用OC搭建自己的Socket 包括服务端和客服端

    iOS开发-使用OC搭建自己的Socket 包括服务端和客服端 前言 开发须知 客服端 服务端 两端测试 前言 iOS开发中需要使用到Socket通信的地方,socket分为UDP和TCP,这次分享的 ...

  5. 远程桌面服务ActiveX空件(mstscax.dll)跟客服端外壳的版本不相配

    远程桌面服务ActiveX空件(mstscax.dll)跟客服端外壳的版本不相配 浏览器重置好了

  6. JSP获得客服端MAC地址

    为什么80%的码农都做不了架构师?>>>    package com.sun.servlet;import java.io.IOException; import java.net ...

  7. CXF 客服端调用报错

    服务端已经发布了WSDL,现在在客服端生成web service客服端代码,在eclipse中新建一个project,然后new->web services->web service cl ...

  8. 客服端与服务器之间传输信息,QT实现客服端和服务器之间消息和文件交互

    QT实现客服端和服务器之间消息和文件交互 文章目录 QT实现客服端和服务器之间消息和文件交互 平台环境 数据库选择与安装 交叉编译工具链GCC的安装 数据库创建数据 Qt的开发环境搭建 Web实现 T ...

  9. H5/APP客服端源码/uniapp在线客服系统源码开源了,全源码代码解读及发行安装教程...

    前言 目前,即时通讯在线咨询在网站.APP.小程序中已经是不可获取的功能,尤其是专注于线上营销的商家,迫切需要一套可以随时与访客交流的即时通讯工具. 如果使用市面上的SaaS客服系统,会在功能上受限制 ...

最新文章

  1. OpenGL编程轻松入门(四)
  2. c++dll生成和调用
  3. X3D.Studio编辑器界面介绍
  4. 浅谈 Spring 框架注解的用法分析
  5. Ubuntu环境搭建
  6. 论文学习21-Globally Normalized Transition-Based Neural Networks(2016,标签偏差问题
  7. 我以为我对Mysql索引很了解,直到我遇到了阿里的面试官
  8. Java并发编程笔记—基础知识—实用案例
  9. grub 与grub2
  10. (金税盘版)开票软件,登录提示密钥容器不存在,怎么处理?
  11. OpenCV 银行卡卡号识别
  12. Manjaro安装与软件硬件基本配置(保姆级)
  13. python输出两个元素空格隔开_python实现将一串字符每两个一组,中间用空格隔开...
  14. AFL++: Combining Incremental Steps of Fuzzing Research
  15. 数据库根据经纬度查询离我最近的数据
  16. 新冠疫情对AI技术发展的影响
  17. HDU 1814(染色)
  18. 老电脑深度linux,国产操作系统DEEPIN超越微软WINDOWS成为老电脑福音,进步神速
  19. 设计模式之委派模式(不属于23种经典设计模式之一)
  20. 学术篇 | 多模态fNIRS脑电分类——基于脑机接口的深度学习算法

热门文章

  1. matplotlib嵌入到pyqt中
  2. yolo3(目标检测)实测
  3. CentOS6.7 安装hadoop2.7.5
  4. [译]ASP.NET Core 2.0 机密配置项
  5. 《github一天一道算法题》:分治法求数组最大连续子序列和
  6. 正确设置nginx/php-fpm/apache权限 提高网站安全性 防止被挂木马
  7. Windows 7 Natvie VHD
  8. SQL语句的解释计划
  9. PIX515防火墙配置策略实例
  10. Thymeleaf 基本用法总结