设为首页 加入收藏

TOP

Android之okhttp实现socket通讯(非原创)(一)
2019-08-24 00:11:07 】 浏览:75
Tags:Android okhttp 实现 socket 通讯 原创

文章大纲

一、okhttp基础介绍
二、socket通讯代码实战
三、项目源码下载
四、参考文章

 

一、okhttp基础介绍

https://www.jianshu.com/p/e3291b7808e7

二、socket通讯代码实战

1. 添加依赖和权限

app的build.gradle下添加okhttp依赖

implementation 'com.squareup.okhttp3:okhttp:3.8.1' 
 

AndroidManifest.xml文件添加网络权限

<uses-permission android:name="android.permission.INTERNET" /> 
 

2. 添加布局文件

activity_main.xml文件中代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/start" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="start" android:textSize="16sp" /> <TextView android:id="@+id/text" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/start2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="start2" android:textSize="16sp" /> <TextView android:id="@+id/text2" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> 

3. MainActivity逻辑实现

package aidl_customer.com.wj.http_socket; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import java.util.concurrent.TimeUnit; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import okhttp3.WebSocket; import okhttp3.WebSocketListener; import okio.ByteString; /** * okhttp是3.5以后才添加对WebSocket的支持 */ public class MainActivity extends AppCompatActivity { private Button start; private TextView text; private Button start2; private TextView text2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); start = (Button) findViewById(R.id.start); text = (TextView) findViewById(R.id.text); start2 = (Button) findViewById(R.id.start2); text2 = (TextView) findViewById(R.id.text2); start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { connect(); } }); start2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { OkHttpClient client = new OkHttpClient.Builder() .readTimeout(3, TimeUnit.SECONDS) .build(); Request request = new Request.Builder() .url("ws://echo.websocket.org") .build(); WebSocket webSocket = client.newWebSocket(request, new WebSocketListener() { @Override public void onOpen(WebSocket webSocket, Response response) { super.onOpen(webSocket, response); } @Override public void onMessage(WebSocket webSocket, String text) { super.onMessage(webSocket, text); } @Override public void onMessage(WebSocket webSocket, ByteString bytes) { super.onMessage(webSocket, bytes); } @Override public void onClosing(WebSocket webSocket, int code, String reason) { super.onClosing(webSocket, code, reason); } @Overri
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇使用HTTP协议访问网络(Android) 下一篇INSTALL_FAILED_NO_MATCHING_ABIS..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目