1、what's Socket?
* Socket是网络通信的一种接口,基于不同的协议有不同的Socket;
例如: TCP协议的Socket
UDP协议的Socket;
蓝牙协议的Socket;
* Socket 在计算机行业中称为:套接字,用于描述IP地址和端口,是通信链的句柄;
端口:计算机拥有端口,每一个端口都可以有一个应用程序来进行通讯的使用;
端口范围:0-256*256-1;
例如: 80端口 对应 HTTP 协议使用端口;
21端口 对应FTP 协议端口;
* 用途:应用程序通过套接字,像网络发送请求或者应答网络的请求;
* 用法:发送请求的时候Socket分成了两部分:
一部分:服务器端的Socket:主要接受来自网络的请求,一直监听在某一个端口上;
二部分:客户端的Socket , 这个Socket主要用来向网络发送数据;
2、UDP协议 和 TCP 协议:
* 简介:二者都是互联网使用最广泛的协议,基于IP的协议;
* 特点:
UDP:不靠谱,无连接,效率高;
TCP:靠谱,有连接,效率低;
3、Socket 通讯流程:选择UDP/TCP 中的一种协议发送数据-->通过“通信信道”(IP的基础网络)
->服务器端(用什么协议发送的那么则用什么协议接收);
4、Socket与ServerSocket:
* 过程介绍:Socket是TCP/IP协议上的一种通信,在通信的两端各建立一个Socket,从
而在通信的两端之间形成了网络虚拟链路。一旦建立虚拟的网络链路,两端的程序就可以通过虚拟链路进行
通信;
5、温馨提示:设计到网络资源的访问,必须在AndoridManifest.xml中设置网络访问权限;
<uses-permission android:name="android.permission.INTERNET"/>
6、ServerSocket 创建TCP服务器端:代码如下:
public static void main(String[] args)throws Exception{
/* 获取一个ServerSocket,用于监听客户端Socket的请求,端口:20000 */
ServerSocket server = new ServerSocket(20000);
System.out.println("等待请求...");
/* 服务器有多个客户端请求,则需要不断的接收请求 */
while(true){
/* 接收到客户端Socket的请求,做出响应 ,也产生一个Socket*/
Socket socket = server.accept();
/* 响应客户端返回的数据 */
String message = "Today , NICE";
/* 获得可写流 */
OutputStream os = socket.getOutputStream();
/* 写数据, 并指定字符编码格式为:UTF-8 */
os.write(message.getBytes("UTF-8"));
os.close();
socket.close();
System.out.println("一次请求完成");
}
}
7、Socket 创建客户端:java代码如下:
/* 客户端,请求服务器 */
public void accept_serverSocket(){
try{
/* 获取Socket 对象,指定IP , 以及端口 */
Socket socket = new Socket("192.168.16.16",20000);
/* 将Socket对应的流封装为缓冲流 */
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String message = br.readLine();
/* 显示 */
Toast.makeText(MainActivity.this, message, 1000).show();
br.close();
socket.close();
}catch(Exception ex){
}
}
分享到:
相关推荐
android-async-tls-socket 简单易用的异步套接字从 Android 手机建立 TLS 连接。 由于缺乏在 Android 上实现这一目标的简单快速方法而感到沮丧,而 Android 的重点似乎只放在 https 上。 而 SSLEngine 似乎有点...
Android手机的应用,除了...java在socket通信方面上已经有了很好的范例,我只是抛砖引玉,将其引入到android之中,疏漏之处在所难免,很多地方也值得深思与考量,下面,用敲门的方式演示Android如何实现套接字的通信。
HttpSocketAdaptor 适用于Android的简单Http到原始套接字适配器HTTP套接字适配器是一个小型实用程序,它允许通过任何android网络浏览器与TCP套接字设备进行通信。 它使用localhost上的HTTP服务器接收来自ajax调用的...
Socket(套接字)是一种抽象层,应用程序通过它来发送和接收数据,就像应用程序 打开了一个文件句柄,将数据读写到稳定的存储器上一样。使用 Socket 可以将应用 程序添加到网络中,并与处于同一网络中的其他应用...
fyp-android-socket-test 一个简单的应用程序,用于在 Android 中为 FYP 测试套接字
Java-客户端-服务器-套接字程序简单的客户端和服务器套接字代码,其中套接字充当数据泵,创建一串随机数据。 套接字当前设置为端口 8000。有一个计时器运行服务器套接字发送的持续时间,在代码中设置。 数据以逗号...
P2P聊天和文件共享应用程序使用套接字Android 使用Android中的套接字的对等聊天和文件共享应用程序。描述在Android中使用Socket编程进行点对点聊天和文件共享的应用程序基本特点: 这是一个点对点聊天和文件共享应用...
Socket套接字 是网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。 socket实现的原理机制: 1、通信的两端都有Socket 2、网络通信其实就是Socket间的通信 3、数据在两个Socket间...
Android应用程序Java套接字编程Android应用程序Java套接字编程
Java应用程序或Andorid的阻塞套接字客户端。 Open source licenses Basic Socket Library Socket Server Plugin Library 中文在线文档 为了照顾中国同学的使用,提供了中文的说明文档: : OkEchoServer开源 由于...
(2)连接(Android 创建Socket会自动连接) (3)与服务器端进行通信 (4)关闭套接字 四、系统流程图 五、系统设计 本课程设计按照系统的具体功能要求,首先应用Socket编程创建客户端和服务器端, 每多个客户端服务器端...
套接字聊天一个演示应用程序,展示Android MVP Realtime架构。 Socket Chat是使用Android MVP Realtime架构构建的演示应用程序。 您可以在我的中级文章上阅读有关体系结构的更多信息。 该应用程序通过连接到Socket....
所谓Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信连的句柄,应用程序通常通过“套接字”向网络发送请求或者应答网络请求,它就是网络通信过程中端点的抽象表示。它主要包括以下两个协议: TCP ...
eclipse=D:\android\eclipse\eclipse.exe; ps=D:\\Program Files (x86)\\Adobe Photoshop CS6\\Photoshop.exe; 应用程序 or explorer=explorer; Windows自带的应用程序 or apk=Z:\MST628_Base\MST628_jb...
详细讲述了socket得应用。多线程socket应用
适用于Android应用程序的阻塞套接字客户端。 用其他语言阅读: OkSocket介绍 Android Oksocket Library是基于Java阻塞套接字的套接字客户端解决方案,您可以使用它来开发在线聊天室或数据传输等。 Maven配置 自动...
INTERNET "/> 实验结果截图: 图表 1 选择城市界面 图表 2 城市天气界面 三、实验分析与小结: Socket通信开发步骤 (1)新建套接字,开启服务器监听 ServerSocket ss=new ServerSocket(3080) ; ss.accept(); (2)...
Android异步 AndroidAsync是一个低级... 套接字客户端+套接字服务器 HTTP客户端+服务器 WebSocket客户端+服务器 下载 下载或通过Maven获取: < groupId>com.koushikdutta.async</ groupId> < artifactId>androidasy
桌面应用程序通过套接字接收请求并执行鼠标和键盘模拟。 此应用程序仅旨在用作由Android MouseSocket应用程序传递的消息的收件人。 我们创建了一个服务器套接字,允许单个用户保持连接并接收消息。
社交媒体应用程序克隆(Instagram,Facebook,链接等)+ Node.js套接字聊天+呼叫+直播 使用的技术 Flutter- iOS android app PHP -管理面板和其他API Nodejs for chat(socket.io) Firebase -用于推送通知 AWS -...