Android 网络编程教程,基于socket和http协议实例

基于socket的用法

服务器端:

先启动一个服务器端的socket    

ServerSocket svr = new ServerSocket(8989);

开始侦听请求

Socket s = svr.accept();

取得输入和输出

DataInputStream dis = new DataInputStream(s.getInputStream());

DataOutputStream dos = new DataOutputStream(s.getOutputStream());

Socket 的交互通过流来完成,即是说传送的字节流,因此任何文件都可以在上面传送。谁打开的记得要关上。

用DataInputStream/DataOutputStream来进行包装是因为我们想要他们对基本数据类型的读写功能readInt(),writeInt(),readUTF(),writeUTF()等等。

客户端:

发起一个socket连接

Socket s = new Socket("192.168.1.200",8989);

取得输入和输出

DataInputStream dis = new DataInputStream(s.getInputStream());

DataOutputStream dos = new DataOutputStream(s.getOutputStream());

之后就可以相互通信了。谁打开的记得要关上。

基于Http协议

一般是发送请求到某个应用服务器。此时需要用到HttpURLConnection

先取得HttpURLConnection

urlConn = new URL("http://www.google.com").openConnection();

设置标志 

urlConn.setDoOutput(true);  urlConn.setDoInput(true);

//post的情况下需要设置DoOutput为true

urlConn.setRequestMethod("POST");

urlConn.setUseCache(false);//设置是否用缓存

//设置content-type

urlConn.setRequestProperty("Content-type","application/x-www-form-urlencoded");

获得输出流,便于想服务器发送信息。

DataOutputStream dos = new DataOutputStream(urlConn.getOutputStream());

望流里面写请求参数

dos.writeBytes("name="+URLEncoder.encode("chenmouren","gb2312");

dos.flush();dos.close();//发送完后马上关闭。

获得输入流,取数据

BufferReader reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));

reader.readLine();//用 !=null来判断是否结束

reader.close();

读完了记得关闭connection  urlConn.disconnect();

时间: 2024-10-08 16:37:48

Android 网络编程教程,基于socket和http协议实例的相关文章

【Android】Android网络编程概述

Android网络编程概述 原文来自:http://blog.csdn.net/kieven2008/article/details/8210737 首先,应该了解的几个问题: 1)Android平台网络相关API接口  a) java.net.*(标准Java接口)  java.net.*提供与联网有关的类,包括流.数据包套接字(socket).Internet协议.常见Http处理等.比如:创建URL,以及URLConnection/HttpURLConnection对象.设置链接参数.链接

Windows 10 开发 网络编程教程

本教程的主要内容:HttpClient类,Socket通信,WCF通信  HttpClient类  在UWP中可以用来进行网络通信的HttpClient类有两个,System.Net.Http.HttpClient和Windows.Web.Http.HttpClient,两者使用上的差别并不大,但我们优先考虑后者,因为它位于Windows.Foundation.UniversalApiContract程序集中,是本地代码,效率更高.我们主要学习的也是Windows.Web.Http.HttpCl

C# 网络编程之使用Socket类Send、Receive方法的同步通讯

      经过几天学习,终于解决了再C#网络编程中使用Socket类Send和Receive方法开发的客户端和服务端的同步通讯程序:实现了又客户端想服务器发送消息的界面程序.主要使用的方法是:      1.Socket套接字编程的知识,通过IPAddress定义一个IP地址,IPEndPoint定义一个主机,Socket实例套接字对象sock和线程Thread的的成员变量;      2.再调用方法bind绑定端口.listen监听端口.accept接受连接请求.connect请求连接来连接

android 网络编程之网络通信几种方式实例分享

如今,手机应用渗透到各行各业,数量难以计数,其中大多数应用都会使用到网络,与服务器的交互势不可挡,那么android当中访问网络有哪些方式呢? 现在总结了六种方式: (1)针对TCP/IP的Socket.ServerSocket (2)针对UDP的DatagramSocket.DatagramPackage.这里需要注意的是,考虑到Android设备通常是手持终端,IP都是随着上网进行分配的.不是固定的.因此开发也是有一点与普通互联网应用有所差异的. (3)针对直接URL的HttpURLConn

C# 网络编程之基于SMTP发送电子邮件

        本文主要讲述基于C#网络编程的发送邮件的编程,邮件发送功能是基于邮件协议的,常见的电子邮件协议有SMTP(简单邮件传输协议).POP3(邮局协议).IMAP(Internet邮件访问协议),文章主要参考周存杰的<C#网络编程实例教程>.这也是最后一篇参照该书的网络编程文章,之后的该系列文章都是基于网络实际应用的,不会再大量讲述原理知识. 一.SMTP协议         SMTP协议是TCP/IP协议家族定义的机器间交换邮件的标准,它主要负责底层邮件系统如何将一个报文从一台机器

从零开始学Python第八周:详解网络编程基础(socket)_python

一,Socket编程 (1)Socket方法介绍 Socket是网络编程的一个抽象概念.通常我们用一个Socket表示"打开了一个网络链接",而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协议类型即可. 套接字是一个双向的通信信道的端点.套接字可能在沟通过程,进程之间在同一台机器上,或在不同的计算机之间的进程 要创建一个套接字,必须使用Socket模块的socket.socket()方法 在socket模块中的一般语法: s = socket.socket(sock

Linux网络编程之基于UDP实现可靠的文件传输示例_C 语言

了解网络传输协议的人都知道,采用TCP实现文件传输很简单.相对于TCP,由于UDP是面向无连接.不可靠的传输协议,所以我们需要考虑丢包和后发先至(包的顺序)的问题,所以我们想要实现UDP传输文件,则需要解决这两个问题.方法就是给数据包编号,按照包的顺序接收并存储,接收端接收到数据包后发送确认信息给发送端,发送端接收确认数据以后再继续发送下一个包,如果接收端收到的数据包的编号不是期望的编号,则要求发送端重新发送. 下面展示的是基于linux下C语言实现的一个示例程序,该程序定义一个包的结构体,其中

Java网络编程基础(二) Socket类的使用方法

当客户程序需要与服务器程序通讯的时候,客户程序在客户机创建一个socket对象,Socket类有几个构造函数. 两个常用的构造函数是 Socket(InetAddress addr, int port) 和 Socket(String host, int port),两个构造函数都创建了一个基于Socket的连接服务器端流套接字的流套接字.对于第一个InetAddress子类对象通过addr参数获得服务器主机的IP地址,对于第二个函数host参数包被分配到InetAddress对象中,如果没有I

Android 基于Socket的聊天应用实例(二)_Android

前言 很久没写BLOG了,之前在写Android聊天室的时候答应过要写一个客户(好友)之间的聊天demo,Android 基于Socket的聊天室已经实现了通过Socket广播形式的通信功能. 以下是我写的一个类似现在多数聊天软件的冒泡聊天APP.全部功能都是自己的想法,对于现在市面上成功的例子是怎么实现的,我还不了解.所以读者可只做参考学习,也可以分享您的案例给我. 功能 一对一聊天,非聊天室 好友列表 好友在线,离线状态(实时更新) 冒泡实时聊天窗口 发送离线信息 基本原理 之前的聊天室原理