Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
2ce1e1cd
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
2ce1e1cd
编写于
7月 06, 2023
作者:
X
xujie
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加TCP服务端的示例
Signed-off-by:
N
xujie
<
xujie223@huawei.com
>
上级
006163cf
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
77 addition
and
0 deletion
+77
-0
zh-cn/application-dev/connectivity/socket-connection.md
zh-cn/application-dev/connectivity/socket-connection.md
+77
-0
未找到文件。
zh-cn/application-dev/connectivity/socket-connection.md
浏览文件 @
2ce1e1cd
...
...
@@ -16,6 +16,7 @@ Socket连接主要是通过Socket进行数据传输,支持TCP/UDP/TLS协议。
应用通过Socket进行数据传输,支持TCP/UDP/TLS协议。主要场景有:
-
应用通过TCP/UDP Socket进行数据传输
-
应用通过TCP Socket Server进行数据传输
-
应用通过TLS Socket进行加密数据传输
## 接口说明
...
...
@@ -28,12 +29,15 @@ Socket连接主要由socket模块提供。具体接口说明如下表。
| -------- | -------- |
| constructUDPSocketInstance() | 创建一个UDPSocket对象。 |
| constructTCPSocketInstance() | 创建一个TCPSocket对象。 |
| constructTCPSocketServerInstance() | 创建一个TCPSocketServer对象。 |
| listen() | 绑定IP地址和端口,监听并接受与此套接字建立的TCPSocket连接。(仅TCP支持) |
| bind() | 绑定IP地址和端口。 |
| send() | 发送数据。 |
| close() | 关闭连接。 |
| getState() | 获取Socket状态。 |
| connect() | 连接到指定的IP地址和端口(仅TCP支持) |
| getRemoteAddress() | 获取对端Socket地址(仅TCP支持,需要先调用connect方法) |
| setExtraOptions() | 设置Socket连接的其他属性。 |
| on(type:
'message') | 订阅Socket连接的接收消息事件。 |
| off(type:
'message') | 取消订阅Socket连接的接收消息事件。 |
| on(type:
'close') | 订阅Socket连接的关闭事件。 |
...
...
@@ -163,6 +167,79 @@ setTimeout(() => {
},
30
*
1000
);
```
## 应用通过TCP Socket Server进行数据传输
### 开发步骤
服务端TCP Socket流程:
1.
import需要的socket模块。
2.
创建一个TCPSocketServer连接,返回一个TCPSocketServer对象。
3.
绑定IP地址和端口,监听并接受与此套接字建立的TCPSocket连接。
4.
订阅TCPSocketServer相关的connect事件。
5.
通过返回的TCPSocketConnection对象订阅相关的事件。
6.
发送数据。
7.
关闭与TCPSocket建立的连接,取消相关事件的订阅。
```
js
import
socket
from
'
@ohos.net.socket
'
// 创建一个TCPSocketServer连接,返回一个TCPSocketServer对象。
let
tcpServer
=
socket
.
constructTCPSocketServerInstance
();
// 绑定本地IP地址和端口,进行监听
tcpServer
.
listen
({
address
:
"
192.168.xx.xxx
"
,
port
:
xxxx
,
family
:
1
},
err
=>
{
if
(
err
)
{
console
.
log
(
"
listen fail
"
);
return
;
}
console
.
log
(
"
listen success
"
);
})
// 订阅TCPSocketServer的connect事件
tcpServer
.
on
(
'
connect
'
,
function
(
client
)
{
// 订阅TCPSocketConnection相关的事件
client
.
on
(
'
close
'
,
()
=>
{
console
.
log
(
"
on close success
"
);
});
client
.
on
(
'
message
'
,
function
(
value
)
{
console
.
log
(
"
received address--:
"
+
value
.
remoteInfo
.
address
);
console
.
log
(
"
received family--:
"
+
value
.
remoteInfo
.
family
);
console
.
log
(
"
received port--:
"
+
value
.
remoteInfo
.
port
);
console
.
log
(
"
received size--:
"
+
value
.
remoteInfo
.
size
);
});
// 发送数据
client
.
send
({
data
:
'
Hello, client!
'
},
err
=>
{
if
(
err
)
{
console
.
log
(
'
send fail
'
);
return
;
}
console
.
log
(
'
send success
'
);
});
// 关闭与客户端的连接
client
.
close
(
err
=>
{
if
(
err
)
{
console
.
log
(
'
close fail
'
);
return
;
}
console
.
log
(
'
close success
'
);
});
// 取消TCPSocketConnection相关的事件订阅
setTimeout
(()
=>
{
client
.
off
(
'
message
'
);
client
.
off
(
'
close
'
);
},
10
*
1000
);
});
// 取消TCPSocketServer相关的事件订阅
setTimeout
(()
=>
{
tcpServer
.
off
(
'
connect
'
);
},
2
*
1000
);
```
## 应用通过TLS Socket进行加密数据传输
### 开发步骤
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录