android局域网内通过socket通信
来源:互联网 发布:杭州连邦软件 编辑:程序博客网 时间:2024/05/18 03:28
两台android手机在局域网内通过socket通信:
1:两个手机需要在同一个局域网里面
2:修改客户端Client里面的IP地址,IP地址设置为作为服务端的手机的IP地址
3:最下面为服务端,要安装到一个手机里并先运行起来,会显示本机IP地址,显示Client传来的信息,并给Client反馈
4:Client为客户端,有一个输入框和发送按钮,显示传过去的信息
client端
/** * create by caoyinfei */public class MainActivity extends Activity { TextView result; Button send; EditText input; public Handler myHandler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 1) { result.append("server:" + msg.obj + "\n"); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); result = (TextView) findViewById(R.id.result); send = (Button) findViewById(R.id.send); input = (EditText) findViewById(R.id.input); send.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String inputContent = input.getText().toString(); result.append("client:" + inputContent + "\n"); //启动线程 向服务器发送和接收信息 new MyThread(inputContent).start(); } }); } class MyThread extends Thread { public String content; public MyThread(String str) { content = str; } @Override public void run() { //定义消息 Message msg = new Message(); msg.what = 1; try { //连接服务器 并设置连接超时为5秒 Socket socket = new Socket(); socket.connect(new InetSocketAddress("10.100.165.33", 30000), 1000); //获取输入输出流 OutputStream ou = socket.getOutputStream(); //获取输出输出流 BufferedReader bff = new BufferedReader(new InputStreamReader( socket.getInputStream())); //向服务器发送信息 ou.write(content.getBytes("utf-8")); ou.flush(); //读取发来服务器信息 String result = ""; String buffer = ""; while ((buffer = bff.readLine()) != null) { result = result + buffer; } msg.obj = result.toString(); //发送消息 修改UI线程中的组件 myHandler.sendMessage(msg); //关闭各种输入输出流 bff.close(); ou.close(); socket.close(); } catch (SocketTimeoutException aa) { //连接超时 在UI界面显示消息 msg.obj = "服务器连接失败!请检查网络是否打开"; //发送消息 修改UI线程中的组件 myHandler.sendMessage(msg); } catch (IOException e) { e.printStackTrace(); } } }}
server端:
/*** create by caoyinfei */public class MainActivity extends Activity { public static TextView client_content, ip; private String serverIp = ""; String buffer = ""; public static Handler mHandler = new Handler() { @Override public void handleMessage(android.os.Message msg) { if (msg.what == 1) { client_content.append("client" + msg.obj + "\n"); } } ; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); client_content = (TextView) findViewById(R.id.client_content); ip = (TextView) findViewById(R.id.ip); serverIp = getlocalip(); ip.setText("IP addresss:" + serverIp); LogUtil.d("dd","ddddddddddd"); new Thread() { public void run() { OutputStream output; String serverContent = "hello hehe"; try { ServerSocket serverSocket = new ServerSocket(30000); while (true) { Message msg = new Message(); msg.what = 1; try { Socket socket = serverSocket.accept(); //向client发送消息 output = socket.getOutputStream(); output.write(serverContent.getBytes("utf-8")); output.flush(); socket.shutdownOutput(); //获取输入信息 BufferedReader bff = new BufferedReader(new InputStreamReader(socket.getInputStream())); //读取信息 String result = ""; String buffer = ""; while ((buffer = bff.readLine()) != null) { result = result + buffer; } msg.obj = result.toString(); mHandler.sendMessage(msg); bff.close(); output.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } catch (IOException e1) { e1.printStackTrace(); } } ; }.start(); } private String getlocalip() { WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); int ipAddress = wifiInfo.getIpAddress(); // Log.d(Tag, "int ip "+ipAddress); if (ipAddress == 0) return null; return ((ipAddress & 0xff) + "." + (ipAddress >> 8 & 0xff) + "." + (ipAddress >> 16 & 0xff) + "." + (ipAddress >> 24 & 0xff)); }}
2 0
- android局域网内通过socket通信
- 局域网内通过socket进行通信聊天 jar包
- 【Android】socket局域网通信
- C# 局域网内socket通信 TCP
- 局域网内主机之间Socket通信实现
- android端基于socket的局域网内服务器与客户端加密通信
- 记录:通过Socket实现局域网内,手机关闭电脑
- 详细分析局域网内通过无线实现Android端与PC端TCP/UDP通信的四种情况
- 详细分析局域网内通过无线实现Android端与PC端通信的四种情况
- 详细分析局域网内通过无线实现Android端与PC端通信的四种情况
- Android客户端通过socket与服务器通信
- Android手机通过socket与pc通信
- Android手机通过socket与pc通信
- Android客户端通过socket与服务器通信
- Android客户端通过socket与服务器通信
- Android客户端通过socket与服务器通信
- Android手机通过socket与pc通信
- Android客户端通过socket与服务器通信
- 数据结构实验之链表六:有序链表的建立
- java RTTI和反射
- Spatial pyramid pooling (SPP)-net (空间金字塔池化)笔记
- wifidog源码分析 - wifidog原理
- SildingMenu在androidstudio上面的安装
- android局域网内通过socket通信
- 主流JS框架中DOMReady事件的实现
- 平台的框架
- 树——判断是否为二叉搜索树
- KTU Programming Camp (Day 3) A. Queries - 线段树
- NYOJ 20 吝啬国度(vector,深搜)
- MySQL数据库权限参考
- 哈希表详解
- 单元格文本自适应