Android Socket编程学习笔记
2023-09-14 09:07:59 时间
通常也称作"套接字",用于描写叙述IP地址和port,是一个通信链的句柄。在Internet上的主机一般执行了多个服务软件,同一时候提供几种服务。
每种服务都打开一个Socket。并绑定到一个port上,不同的port相应于不同的服务。
网络上的两个程序通过一个双向的通讯连接实现数据的交换。这个双向链路的一端称为一个Socket。
Socket通经常使用来实现客户方和服务方的连接。Socket是TCP/IP协议的一个十分流行的编程界面,一个Socket由一个IP地址和一个port号唯一确定。
在java中。Socket和ServerSocket类库位于java .net包中。ServerSocket用于server端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例。操作这个实例。完毕所需的会话。
以下通过一个极为简单的client和服务端的连接样例演示下最主要的android socket通信:
服务端的代码,在服务端特定的port9999监听client请求,一旦有请求。便会运行,而后继续监听。
使用accept()这个堵塞函数,就是该方法被调用后一直等待client的请求。直到有请求且连接到同一个port,accept()返回一个相应于client的Socket。本例中非常easy,服务端不断监听,一旦有请求就输出一段信息:
以下是androidclient的相关内容,界面有一个button。点击后请求服务端的制定port,然后显示服务端的内容,值得注意的是在android4.0以上的系统中。是不同意在主线程里面去运行网络相关的请求。否则会报错:NetworkOnMainThreadException,所以本例中新开辟一个线程初始化socket的内容:
效果图例如以下:
![](http://www.apkbus.com/data/attachment/forum/201306/07/141823j667g8u6b3c2oae7.jpg)
![](http://www.apkbus.com/data/attachment/forum/201306/07/141825qgjw4sc4dccqjf1w.jpg)
另外在配置文件里记得加上权限:<uses-permission android:name="android.permission.INTERNET">
相关文章
- 【Android平台】 Alljoyn学习笔记二 编译自带的demo的步骤
- 【原】[webkit移动开发笔记]之如何去除android上a标签产生的边框
- Android之View笔记1
- Opencv学习笔记 Android下调用Opencv Sdk
- Android开发学习笔记(二十一)进度条ProgressBar
- Android开发学习笔记(二十)图片ImageView
- Android开发学习笔记(十九)文本编辑框EditText
- Android开发学习笔记(十五)文本标签TextView
- Android开发学习笔记(十四)横屏竖屏状态判断
- Android开发学习笔记(六)相对布局RelativeLayout
- Android开发学习笔记(五)帧布局FrameLayout
- Android问题笔记 - findviewbyid为null的根本原因
- 【Android笔记77】Android之MediaStore操作Image图片、Video视频、Audio音频文件
- 【Android笔记72】Android之图像处理相关的类(Bitmap)
- 【Android笔记47】Android中的Broadcast Receiver之有序广播和无序广播
- 【Android笔记41】使用Android实现一个简易版本的购物车小案例
- 【Android笔记28】Android中的数据存储技术之Shared Preferences
- 【Android笔记19】Android中的事件处理(监听和回调事件)
- Android Studio 1、改包名,2、改项目名,3、类中的所有同一个变量名/文件名统一改
- Android学习笔记(四十):Preference的使用
- Android学习笔记(四十):Preference的使用
- Android Fragement学习笔记(三)----PreferenceFragment的使用
- Android笔记:RelativeLayout