尘雨雾录
尘雨雾录
  • 发布:2024-07-26 18:39
  • 更新:2024-07-29 09:38
  • 阅读:240

kotlin的代码我给转换成UTS版本后类型对不上怎么

分类:uts

原本的kotlin代码

复制代码        val socket = Socket(host, port)  
        Log.d("MainActivity", "Connected to $host:$port")  

        // 获取输出流,用于向服务器发送数据  
        val outputStream = socket.getOutputStream()  
        val printWriter = PrintWriter(outputStream, true) // 自动刷新  

        // 发送数据到服务器  
        printWriter.println(message)  
        Log.d("MainActivity", "Sent message: $message")  

        // (可选)读取服务器响应(如果需要)  
        val inputStream = socket.getInputStream()  
        val reader = BufferedReader(InputStreamReader(inputStream))  
        val serverResponse = reader.readLine()  
        Log.d("MainActivity", "Server response: $serverResponse")  

        // 关闭Socket连接  
        socket.close()
复制代码const socket = new Socket("172.25.3.1", 3160)  
    // 获取输出流,用于向服务器发送数据  
    const outputStream = socket.getOutputStream()  
    let printWriter =new PrintWriter(outputStream, true)  
    printWriter.println("parameter 208888_28\n {'storeID':'208888','tableName':'store','paraName':null}")  
    let inputStream = socket.getInputStream()  
    let reader = new BufferedReader(  
        new InputStreamReader(inputStream)  
    )  
    let serverResponse = reader.readLine()  
    socket.close()

结果在报错:类型 'InputStreamReader' 无法赋值给类型 'Reader'。有名类型只能赋值给同名的有名类型。
new BufferedReader(
new InputStreamReader(inputStream)
)
根据我的经验,kotlin那边会去翻继承类,翻到有对应的,而UTS这边就会显示对不上。

2024-07-26 18:39 负责人:无 分享
已邀请:
DCloud_Android_DQQ

DCloud_Android_DQQ

提供一下复现问题的最简示例

尘雨雾录

尘雨雾录 (作者)

这是我在kotlin下写的socket方法,其实是gpt生成的

复制代码 // Socket连接函数  
private fun connectToServer(host: String, port: Int, message: String) {  
    // 尝试连接服务器  
    try {  
        Log.d("MainActivity", "Connecting to $host:$port...")  
        val socket = Socket(host, port)  
        Log.d("MainActivity", "Connected to $host:$port")  

        // 获取输出流,用于向服务器发送数据  
        val outputStream = socket.getOutputStream()  
        val printWriter = PrintWriter(outputStream, true) // 自动刷新  

        // 发送数据到服务器  
        printWriter.println(message)  
        Log.d("MainActivity", "Sent message: $message")  

        // (可选)读取服务器响应(如果需要)  
        val inputStream = socket.getInputStream()  
        val reader = BufferedReader(InputStreamReader(inputStream))  
        val serverResponse = reader.readLine()  
        Log.d("MainActivity", "Server response: $serverResponse")  

        // 关闭Socket连接  
        socket.close()  
        Log.d("MainActivity", "Disconnected from $host:$port")  
    } catch (e: UnknownHostException) {  
        // 无法解析主机名  
        Log.e("MainActivity", "Unable to resolve host $host", e)  
    } catch (e: IOException) {  
        // 连接失败或读取/写入错误  
        Log.e("MainActivity", "Socket connection failed", e)  
    }  
}

这是我在uni-app x下的uts插件里写的

复制代码export function get_socket():string {  
    const socket = new Socket("172.25.3.1", 3160)  
    // 获取输出流,用于向服务器发送数据  
    const outputStream = socket.getOutputStream()  
    let printWriter =new PrintWriter(outputStream, true)  
    printWriter.println("parameter 208888_28\n {'storeID':'208888','tableName':'store','paraName':null}")  
    let inputStream = socket.getInputStream()  
    let reader = new BufferedReader(  
        new InputStreamReader(inputStream)  
    )  
    let serverResponse = reader.readLine()  
    socket.close()  
    return serverResponse  
}

let reader = new BufferedReader(new InputStreamReader(inputStream))
这一行提示报错【类型 'InputStreamReader' 无法赋值给类型 'Reader'。
有名类型只能赋值给同名的有名类型。】。
kotlin那边会去翻继承类里面有没有对应的,uts这边没有吗。那我该怎么实现socket

要回复问题请先登录注册

  • 标题 / 粗斜体
  • 代码片段
  • 超链接 / 图片 / 视频
  • 列表 / 引用

文章内容较多时,可以用标题分段 :

## 大标题 
### 小标题

斜体 / 粗体 :

**粗体** 
*斜体*
***粗斜体***

代码片段 :

``` javascript
代码片段
```

超链接 :

[链接文字](链接地址) 例: [百度](http://www.baidu.com)

图片 :

![图片说明](图片地址) 例: ![百度logo](http://www.baidu.com/img/bdlogo.gif)

视频 :

!![视频说明](视频地址) 例: !![优酷视频](http://youku.com)

有序列表 :

1. 123
2. 123
3. 123

无序列表 :

- 123
- 123
- 123

引用 : ( 双回车后结束引用 )

> 引用内容
引用内容
引用内容