首页 > 其他分享 >Android连接socket

Android连接socket

时间:2024-01-20 11:22:39浏览次数:24  
标签:socket ip port new Android 连接 Socket

本文章主要是写Android作为客户端。

  1. Android客户端
    对于Android客户端,我们需要创建一个Socket对象,并指定服务器的IP地址和端口号。然后,使用Socket对象的connect()方法连接到服务器。连接成功后,可以使用Socket对象发送和接收数据。但其中一个比较重要的点是要使用到多线程,因为Android应用程序是单线程的。
    代码如下:
public class socket extends Thread{
    
    //Declare variables
    private String ip;
    private int port;
    private Socket socket;
   private BufferedReader in;
    private BufferedWriter out;

    //获取ip和端口
    public socket(String ip, int port) throws IOException {

        this.ip = ip;
        this.port = port;

    }


    //重写run方法,
    @Override
    public void run() {
        try {
             socket = new Socket(ip,port);
            //创立输入输出流
            in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

        //不断扫描直到接收到消息
        while(true){
            try {
                //读取消息(一行一行所以发送方要加入\r\n)
                String msg =in.readLine();
                System.out.printf("收到消息:%s\n",msg);

            } catch (IOException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
}}
//以上只是Android和java连接并且接收消息发送的话自然还要多一个方法用于发送消息

至于java的服务器端请查询上一篇qt和java的socket通信,写的比较菜还请多多担待;
//创立新的socket连接

标签:socket,ip,port,new,Android,连接,Socket
From: https://www.cnblogs.com/yiyulhb/p/17976178

相关文章

  • TCP三次握手源码分析(服务端接收ACK&TCP连接建立完成)
    内核版本:Linux3.10内核源码地址:https://elixir.bootlin.com/linux/v3.10/source(包含各个版本内核源码,且网页可全局搜索函数)《TCP三次握手源码分析(客户端发送SYN)》《TCP三次握手源码分析(服务端接收SYN以及发送SYN+ACK)》《TCP三次握手源码分析(客户端接收SYN+ACK以及发送ACK......
  • C# 字符串操作指南:长度、连接、插值、特殊字符和实用方法
    字符串用于存储文本。一个字符串变量包含由双引号括起的字符集合示例://创建一个string类型的变量并赋予一个值stringgreeting="Hello";如果需要,一个字符串变量可以包含多个单词:示例:stringgreeting2="Nicetomeetyou!";字符串长度在C#中,字符串实际上是一......
  • hyperexpress框架/使用uwebsockets.js核心
    import{scheduleJob}from'node-schedule';//定时任务functionsetupScheduledTasks(){//每6秒执行一次setInterval(()=>{taskEverySixSeconds();},6000);//每33分钟执行一次setInterval(()=>{taskEve......
  • MySQL连接池最大连接数设置
    默认连接数的选择应该基于你的应用程序的需求以及数据库服务器的性能和配置。 对于大多数小型和中型应用程序来说,10个连接可能是一个合理的起点。然而,如果你的应用程序具有较高的并发性或处理大量数据库操作,你可能需要增加连接数。否则,在高负载时,连接池中的连接可能会快速耗尽......
  • I/O多路复用与socket
    前言简单来讲I/O多路复用就是用一个进程来监听多个文件描述符(fd),我们将监听的fd通过系统调用注册到内核中,如果有一个或多个fd可读或可写,内核会通知应用程序来对这些fd做读写操作,select、poll、epoll都是用于处理此类问题的系统API,只不过注册和调用的方式略有不同。例如telnet命......
  • uWebSockets.js 框架经验
    目录结构project/│├──src/│├──app.ts│├──routes/││├──userRoutes.ts││└──index.ts│├──entities/││└──User.ts│├──utils/││└──parseQuery......
  • Jmeter之配置数据库连接
    一前言环境Jmeter5.3window10下面介绍如何在Jmeter中查询mysql数据库二mysql数据库查询要查询mysql数据库,需要用到两个Jmeter组件,配置原件中的JDBCConnectionConfiguration和请求中的JDBCRequestJDBCConnectionConfiguration的作用是根据相关配置创建一个数据库连......
  • android开发编译出错:Unable to find method ''org.gradle.api.file.RegularFileProper
    Unabletofindmethod''org.gradle.api.file.RegularFilePropertyorg.gradle.api.file.ProjectLayout.fileProperty(org.gradle.api.provider.Provider)'''org.gradle.api.file.RegularFilePropertyorg.gradle.api.file.ProjectLayout.fileProp......
  • Android应用中是怎么调用系统相册中的照片的
    Android应用中是怎么调用系统相册中的照片的?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用步骤这里我是通过一个简单的demo来讲解怎么去实现这个功能。首先看布局:<Buttonandroid:id="@+id/button2"androi......
  • 优化风潮下的Android开发者:如何保持竞争力?
    作为一名曾在知名大厂和腾讯工作的程序员,我想分享一下对于职场焦虑的看法。很多程序员都会在职场中遇到焦虑,这不仅来自工作环境,也与个人心态有关。焦虑的原因主要有两个方面:精神压力和竞争压力。我的一个朋友就是这样的,普通本科的学历,去年6月份进的大厂,刚刚开始的时候因为不熟悉工......