Socket实现手机客户端和PC机服务端通信
2015-04-27 16:41
429 查看
手机客户端代码:
![](http://img.blog.csdn.net/20150427164042422?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2x5NzQyMjc5MDk3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
权限
服务端代码:
![](http://img.blog.csdn.net/20150427164333882?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2x5NzQyMjc5MDk3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
右键单击服务端ServerSocketText.java->run javaapplication开启服务
把客户端代码运行到手机和模拟器
![](http://img.blog.csdn.net/20150427165637564?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2x5NzQyMjc5MDk3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150427165802678?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2x5NzQyMjc5MDk3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150427170005791?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2x5NzQyMjc5MDk3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150427165835937?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2x5NzQyMjc5MDk3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150427165600296?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2x5NzQyMjc5MDk3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150427165814836?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2x5NzQyMjc5MDk3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
源码:http://download.csdn.net/detail/gly742279097/8641249
package com.example.socket; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.Socket; import java.net.SocketException; import java.net.UnknownHostException; import java.util.Enumeration; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class Client extends Activity { private EditText edittext = null; private Button send = null; Socket socket = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); edittext = (EditText) findViewById(R.id.edittext); send = (Button) findViewById(R.id.send); send.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { new Thread(new Runnable() { @Override public void run() { sendMsg(); } }).start(); } }); } // 发送信息 public void sendMsg() { try { // 创建socket对象,指定服务器端地址和端口号 socket = new Socket("192.168.1.60", 10000); // 获取 Client 端的输出流 PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); // 填充信息 out.println("我是手机用户端"+GetHostIp()+":"+edittext.getText()); System.out.println(GetHostIp()+":" + edittext.getText()); // 关闭 } catch (UnknownHostException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } finally { try { if(socket==null){ edittext.setText("连接失败"); }else { socket.close(); } } catch (IOException e) { e.printStackTrace(); } } } /** * @return获取手机ip */ private String GetHostIp() { try { for (Enumeration<NetworkInterface> en = NetworkInterface .getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for (Enumeration<InetAddress> ipAddr = intf.getInetAddresses(); ipAddr .hasMoreElements();) { InetAddress inetAddress = ipAddr.nextElement(); if (!inetAddress.isLoopbackAddress()) { return inetAddress.getHostAddress(); } } } } catch (SocketException ex) { } catch (Exception e) { } return null; } }
权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <EditText android:id="@+id/edittext" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" > <requestFocus /> </EditText> <Button android:id="@+id/send" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="发送" /> </LinearLayout>
服务端代码:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class ServerSocketText { public static void main(String[] args) { new ServerThread().start(); } } // 创建一个线程在后台监听 class ServerThread extends Thread { ServerSocket serversocket = null; String msg; public void run() { try { // 创建一个serversocket对象,并让他在Port端口监听 serversocket = new ServerSocket(10000); while (true) { // 调用serversocket的accept()方法,接收客户端发送的请求 Socket socket = serversocket.accept(); BufferedReader buffer = new BufferedReader( new InputStreamReader(socket.getInputStream(), "utf-8")); // 读取数据 msg = buffer.readLine(); System.out.println(msg); } } catch (IOException e) { e.printStackTrace(); } finally { try { serversocket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
右键单击服务端ServerSocketText.java->run javaapplication开启服务
把客户端代码运行到手机和模拟器
源码:http://download.csdn.net/detail/gly742279097/8641249
相关文章推荐
- 实现Socket服务端和客户端即时通信
- 【socket】用PHP的socket实现客户端到服务端的通信
- linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)
- android中利用Socket实现手机客户端与PC端进行通信
- python——使用socket模块实现客户端与服务端通信
- 基于开源SuperSocket实现客户端和服务端通信项目实战
- linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)
- socket编程 -- epoll模型服务端/客户端通信的实现
- Android Socket 聊天工具(一个服务端实现多个客户端间通信)
- 利用socket TCP协议实现客户端与服务端简单通信
- Java中利用socket实现简单的服务端与客户端的通信(入门级)
- 利用Tcp和socket实现的客户端与服务端的简单通信
- 实现Android手机(服务端)与PC(客户端)实现通信
- 利用AsyncSocket来实现客户端与服务端,客户端与客户端的通信
- nodejs socket实现的服务端和客户端简单通信
- 基于开源SuperSocket实现客户端和服务端通信项目实战
- Java中利用socket实现简单的服务端与客户端的通信(中级)——实现任意双向通信
- Android Socket 聊天工具(一个服务端实现多个客户端间通信)
- Socket实现服务端与客户端通信
- 采用异步socket实现客户端和服务端的通信