Android与PC通过Socket进行通信。

PC: Server
Android:Client

服务端程序:

package wu.bu.server;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.net.InetAddress;import java.net.NetworkInterface;import java.net.ServerSocket;import java.net.Socket;import java.net.SocketException;import java.util.Enumeration;public class Server {// 监听器对象private ServerSocket server;/** * 实例化,指定监端口 *  * @param port */public Server(int port) {try {// 指定监听端口和最大访问数量server = new ServerSocket(port, 10);} catch (IOException e) {e.printStackTrace();}}public void Listener() {while (true) {try {System.out.println("begin");// 开始监听,等待数据的到来final Socket socket = server.accept();// 新的线程new Thread(new Runnable() {public void run() {// 缓冲器BufferedReader buffer;try {buffer = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));while (!socket.isClosed()) {String str;str = buffer.readLine();if (str == null)break;System.out.println(str);}System.out.println("--------------------");socket.close();} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}).start();} catch (IOException e) {e.printStackTrace();}}}/** * @vennle *  * @param args */public static void main(String[] args) {// 设置5554为服务器监听端口new Server(5554).Listener();}}


client端:

package com.bu.client;import java.io.IOException;import java.io.PrintWriter;import java.io.UnsupportedEncodingException;import java.net.Socket;import java.net.UnknownHostException;public class ClientSocket {private Socket socket;private final static String IP = "10.0.129.143";private final static int PORT = 5554;public ClientSocket() {super();if (socket == null) {try {socket = new Socket(IP, PORT);} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}public void send(String msg) {try {PrintWriter out = new PrintWriter(socket.getOutputStream());out.println(msg);out.flush();} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}public synchronized void close() {try {socket.close();socket = null;} catch (IOException e) {e.printStackTrace();}}}

Activity:

package com.bu.client;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;public class SocketClient extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);final EditText text = (EditText) this.findViewById(R.id.et_msg);final Button button = (Button) this.findViewById(R.id.btn_send);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {ClientSocket socket = new ClientSocket();String str = text.getText().toString();socket.send(str);socket.close();}});}}


更多相关文章

  1. Android中MediaButtonReceiver广播监听器的机制分析
  2. Android 动画监听器
  3. 华为交换机开启Telnet服务及修改端口
  4. 使用Nginx 代理应用服务的端口,以及ssh连接系统,连接mysql pgsql
  5. 利用端口扫描进行终端合规性检查的一个示例
  6. php怎么改端口
  7. Docker服务开放了这个端口,服务器分分钟变肉机!
  8. ssh 多端口监听或修改默认22端口
  9. 过滤器监听器面试题都在这里

随机推荐

  1. Android(安卓)Studio ——Android(安卓)S
  2. Android(安卓)TabLayout 结合ViewPager实
  3. Android(安卓)PackageInstaller 安装和卸
  4. CardView卡片效果
  5. Android(安卓)自定义可编辑可任意全屏拖
  6. LayoutParams基本使用
  7. [Android]aapt命令小结
  8. 已解决:Error: Static interface methods
  9. Android(安卓)Sqlite数据库详解
  10. android-搭建本地maven仓库