activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>    

MainActivity.java:

package com.miao.tcpandudp;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    public void startTcpServer(View view) {        new Thread(){            @Override            public void run() {                try{                    Log.i("miao","#################################################"+"prepared");                    ServerSocket server = new ServerSocket(6666);                    Socket socket = server.accept();                    Log.i("miao", "#################################################" + "Connected");                    OutputStream os = socket.getOutputStream();                    InputStream is = socket.getInputStream();                    BufferedReader reader = new BufferedReader(new InputStreamReader(is));                    String data = reader.readLine();                    Log.i("miao","#################################################"+data);                    os.write("From Server:hi,I am server .\n".getBytes());                    reader.close();                    is.close();                    os.close();                } catch (Exception e){Log.i("miao","#################################################"+"Exception");}            }        }.start();    }    public void tcpClient(View view) {        new Thread(){            @Override            public void run() {                try{                    Log.i("miao","#########################################"+"clicked");                    Socket socket = new Socket("192.168.104.1",6660);                    Log.i("miao","#########################################"+"Connected");                    OutputStream os = socket.getOutputStream();                    os.write("From Client:Hi,I am Client .\n".getBytes());                    InputStream is = socket.getInputStream();                    BufferedReader br = new BufferedReader(new InputStreamReader(is));                    String data = br.readLine();                    Log.i("miao","#########################################"+data);                    br.close();                    is.close();                    os.close();                } catch (Exception e){                    Log.i("miao","#########################################"+"Exception");                }            }        }.start();    }    public void startUdpServer(View view) {        new Thread(){            @Override            public void run() {                try{                    Log.i("miao","###############################################"+"prepared");                    DatagramSocket ds = new DatagramSocket(5555);                    byte[] buf = new byte[1024];                    DatagramPacket dp = new DatagramPacket(buf,1024);                    ds.receive(dp);                    String data = new String(dp.getData(),0,dp.getLength());                    Log.i("miao","###############################################"+data);                    InetAddress addr = dp.getAddress();                    int port = dp.getPort();                    byte[] echo = "From Server:echo..........".getBytes();                    DatagramPacket dp2 = new DatagramPacket(echo,echo.length,addr,port);                    ds.send(dp2);                    ds.close();                }catch (Exception e){                    Log.i("miao","###############################################"+"Exception");                }            }        }.start();    }    public void udpClient(View view) {        new Thread(){            @Override            public void run() {                try{                    Log.i("miao","###############################################"+"prepared");                    DatagramSocket ds = new DatagramSocket();                    InetAddress addr = InetAddress.getByName("192.168.104.1");                    String data = "From Client:Hi,I am Client .";                    DatagramPacket dp = new DatagramPacket(data.getBytes(),data.length(), addr,5555);                    ds.send(dp);                    byte[] buf = new byte[1024];                    DatagramPacket dp2 = new DatagramPacket(buf,1024);                    ds.receive(dp2);                    String echo = new String(dp2.getData(),0,dp2.getLength());                    Log.i("miao","##########################################"+echo);                    ds.close();                }catch (Exception e){                    Log.i("miao","###############################################"+"Exception");                }            }        }.start();    }}

注意:在测试的时候,可以用电脑和手机之间通讯,也就是一方作为服务端,另一方作为客户端。

更多相关文章

  1. 报错android.view.WindowLeaked解决办法
  2. android之socket编程实例
  3. [Android开发常见问题-21] Android(安卓)近百个项目的源代码
  4. Android客户端登录会话保持现实的文章汇总
  5. Android(安卓)近百个项目的源代码,覆盖Android开发的每个领域
  6. Android(安卓)近百个项目的源代码,覆盖Android开发的每个领域
  7. Android(安卓)近百个项目的源代码,覆盖Android开发的每个领域
  8. Android(安卓)的一些比较好的开源代码项目
  9. 面试官:作为Android高级攻城狮,请你解释一下 android:text 到 Text

随机推荐

  1. Android(安卓)电话博大流程源码分析
  2. Android编译系统(四):Android(安卓)编译
  3. android app 设计总结
  4. wifi和GPRS下获取android的IP信息
  5. 安卓布局
  6. [Android各版本特性]Android(安卓)7.0 No
  7. 刚刚接触Android,写第一个Hello world 小
  8. Android自学笔记(番外篇):全面搭建Linux环境
  9. android布局属性预览
  10. android 环境的搭建