1.TCP:

xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button
android:id="@+id/buttonStart"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:text="启动服务器端监听"
/>
</LinearLayout>

服务器:

package idea.org;

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket; import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class Android_Socket extends Activity {
private Button buttonStart=null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
buttonStart=(Button)findViewById(R.id.buttonStart);
buttonStart.setOnClickListener(new buttonListener());
}
class buttonListener implements OnClickListener
{
/* (non-Javadoc)
* @see android.view.View.OnClickListener#onClick(android.view.View)
*/
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
new Thread()
{ /* (non-Javadoc)
* @see java.lang.Thread#run()
*/
@Override
public void run() {
// TODO Auto-generated method stub
ServerSocket serverSocket=null;
try
{
//创建ServerSocket对象监听6661端口
serverSocket=new ServerSocket(6661);
//接收tcp连接返回socket对象
Socket socket=serverSocket.accept();
//获得输入流
InputStream inputStream=socket.getInputStream();
byte []byteBuffer=new byte[1024];
int temp=0;
//读取接收的数据
while((temp=inputStream.read(byteBuffer))!=-1)
System.out.println(new String(byteBuffer,0,temp));
socket.close();
serverSocket.close(); }
catch(IOException e)
{
e.printStackTrace();
}
} }.start();
}
};
}

客户端:

package idea.org;

import java.io.FileInputStream;
import java.io.InputStream;
import java.net.Socket; public class TCPCient {
public static void main(String[] args)
{
try {
//定义Socket对象,连接指定IP和指定端口
Socket socket=new Socket("127.0.0.1",6661);
InputStream inputStream=new FileInputStream("F://test.txt");
//从Socket对象获得输出流
java.io.OutputStream outputStream=socket.getOutputStream();
int temp=0;
byte[]buffer=new byte[1024];
//向输出流中写要发送的数据
while((temp=inputStream.read(buffer))!=-1)
{
outputStream.write(buffer,0,temp);
System.out.println(new String(buffer,0,temp));
}
outputStream.flush();
socket.close();
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

AndroidManifest.xml:(权限)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="idea.org"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="11" /> <application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Android_Socket"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity> </application>
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>

2.UDP:

服务器:

package idea.org;

import java.io.IOException;
import java.io.InputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class Android_Socket extends Activity {
private Button buttonStart=null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
buttonStart=(Button)findViewById(R.id.buttonStart);
buttonStart.setOnClickListener(new buttonListener());
}
class buttonListener implements OnClickListener
{
/* (non-Javadoc)
* @see android.view.View.OnClickListener#onClick(android.view.View)
*/
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
new Thread()
{ /* (non-Javadoc)
* @see java.lang.Thread#run()
*/
@Override
public void run() {
// TODO Auto-generated method stub
try
{
//创建一个DatagramSocket对象并指定监听的端口
DatagramSocket socket=new DatagramSocket(6662);
byte[]data=new byte[1024];
//创建一个空的DatagramPacket对象用来存放接收到的DatagramPacket
DatagramPacket packet=new DatagramPacket(data,data.length);
//使用receive方法接收客户端发送的数据
socket.receive(packet);
String result=new String(packet.getData(),packet.getOffset(),packet.getLength());
System.out.println(result);
}
catch(IOException e)
{
e.printStackTrace();
}
} }.start();
}
};
}

客户端:

package idea.org;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress; public class UDPClient {
public static void main(String []args)
{
try
{
//创建一个DatagramSocket对象
DatagramSocket socket=new DatagramSocket();
//创建一个表示IP地址的InetAddress对象
InetAddress serverAddress=InetAddress.getByName("192.168.0.5");
String str="Hello,world!Hello,Everyone!";
byte[]data=str.getBytes();
//创建一个用于发送的DatagramPacket对象
DatagramPacket packet=new DatagramPacket(data,data.length,serverAddress,6662);
//发送数据
socket.send(packet);
}
catch(Exception e)
{
e.printStackTrace(); }
} }

Android Socket通信的更多相关文章

  1. Android Socket通信详解

    一.Socket通信简介  Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客 ...

  2. Android Socket 通信

    Android socket 通信 安卓编写Socket客户端,实现连接Socket服务端通信. 创建Socket连接并获取服务端数据 先创建几个全局变量吧 private BufferedWrite ...

  3. 浅谈android Socket 通信及自建ServerSocket服务端常见问题

    摘  要:TCP/IP通信协议是可靠的面向连接的网络协议,它在通信两端各建立一个Socket,从而在两端形成网络虚拟链路,进而应用程序可通过可以通过虚拟链路进行通信.Java对于基于TCP协议的网络通 ...

  4. Android Socket通信编程

    安卓客户端通过socket与服务器端通讯一般可以按照以下几个步骤:(1).通过IP地址和端口实例化Socket,请求连接服务器:socket = new Socket(HOST, PORT); //h ...

  5. JAVA ANDROID SOCKET通信检测(SERVER)连接是否断开

    Pre 解决思路 代码后记: 客户端app上的部分代码 调用: 服务器上: 客户端判断服务器是否还活着代码: PRE 在利用socket写通讯程序的时候,想检测服务器是否还活着. 从网上找了很多资料, ...

  6. Android Socket编程学习笔记

    http://blog.csdn.net/eyu8874521/article/details/8847173 度娘给出的描述:通常也称作"套接字",用于描述IP地址和端口,是一个 ...

  7. Android Socket编程

    花了大概两天的时间,终于把Android的Socket编程给整明白了.抽空和大家分享一下: Socket Programming on Android Socket 编程基础知识: 主要分服务器端编程 ...

  8. Android之Socket通信、List加载更多、Spinner下拉列表

    Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务 ...

  9. Android开发--Socket通信

    一.Socket通信简介 Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是"请求-响应方式",即在请求时 ...

随机推荐

  1. [ZOJ 1006] Do the Untwist (模拟实现解密)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=6 题目大意:给你加密方式,请你求出解密. 直接逆运算搞,用到同余定理 ...

  2. visual studio 中快捷键的使用

    我在使用编辑器的过程中是比较喜欢使用快捷键的,因为这样可以在操作中更加便捷 ①ctrl+k,ctrl+d,代码重排 ②ctrl+k,k就是ctrl键加连续两次k键,添加书签,然后通过ctrl+k,ct ...

  3. IOS开发-phonegap上的数据库

    phonegap提供的本地数据库功能不可用,最终请教高手后使用SQLitePlugin插件来实现.网上很多都是介绍IOS插件如何编程,少有介绍如何使用插件: 一.插件安装: 1.下载,解压,复制以下文 ...

  4. 【转】一个URL编码和解码的C++类

    下面的代码实现了一个用于C++中转码的类strCoding.里面有UTF8.UNICODE.GB2312编码的互相转换. .H文件: #pragma once #include <iostrea ...

  5. js对象2--工厂模式的由来--杂志

    一:工厂模式引入前提例子 先看一个案例 <script type="text/javascript"> var person= new Object(); //创建一个 ...

  6. Appium输入中文的问题,简单的方法

    经常有人问,Appium怎么输入中文,下面提供一种相对简单的方式. 以前曾经提到过capabilities关键字,里面有这样2个属性, |`unicodeKeyboard`| 使用 Unicode 输 ...

  7. 【转】WEB测试到移动测试的转换

    移动互联网的发展毋庸置疑是必然的趋势,我们曾经传统WEB互联网测试的同学,也必然走上移动测试的道路,移动测试与pc测试到底需要怎样的思维转变才能更快的进入移动节奏呢?对比下WEB与移动的测试不同点: ...

  8. [ CodeVS冲杯之路 ] P1053

    不充钱,你怎么AC? 题目:http://codevs.cn/problem/1053/ 直接扫一遍串,把字母对应的 ascii 码直接做数组下标,交给数组统计 最后查询一遍数组的 'a'-'z' , ...

  9. PostMessage与SendMessage的区别(二)

    在做基于窗口的Windows程序的时候,我们避免不了要向窗口发送消息,有两种方式,一种是PostMessage,另外一种是SendMessage.关于这两个宏,我是通过狠狠的看MSDN才搞明白的,那里 ...

  10. APP完整的启动流程

    0.加载+load方法 1.执行Main函数 2.执行UIApplicationMain函数. 3.创建UIApplication对象,并设置UIApplicationMain对象的代理.UIAppl ...