<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ocr.michiyo.me/w/index.php?action=history&amp;feed=atom&amp;title=Component%2Fmodem%2Fzh</id>
	<title>Component/modem/zh - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ocr.michiyo.me/w/index.php?action=history&amp;feed=atom&amp;title=Component%2Fmodem%2Fzh"/>
	<link rel="alternate" type="text/html" href="https://ocr.michiyo.me/w/index.php?title=Component/modem/zh&amp;action=history"/>
	<updated>2026-08-24T15:34:59Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://ocr.michiyo.me/w/index.php?title=Component/modem/zh&amp;diff=1181&amp;oldid=prev</id>
		<title>imported&gt;OCDoc Import: Imported from legacy OpenComputers documentation at ocdoc.cil.li</title>
		<link rel="alternate" type="text/html" href="https://ocr.michiyo.me/w/index.php?title=Component/modem/zh&amp;diff=1181&amp;oldid=prev"/>
		<updated>2026-08-24T08:08:27Z</updated>

		<summary type="html">&lt;p&gt;Imported from legacy OpenComputers documentation at ocdoc.cil.li&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= 组件：调制解调器 =&lt;br /&gt;
&lt;br /&gt;
此组件由[[Item/network card/zh|网卡]]提供。无线网卡的特性与普通网卡基本相同，但是当设定了信号强度时还能将报文以无线“数据包”的形式发送出去。在组网时需要用到网卡的地址，地址可通过`component.modem.address`获取。&lt;br /&gt;
&lt;br /&gt;
组件名：`modem`。&lt;br /&gt;
&lt;br /&gt;
回调函数：&lt;br /&gt;
&lt;br /&gt;
* `isWireless(): boolean`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;返回此调制解调器是否可用于发送无线报文。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `maxPacketSize(): number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;返回通过网卡传输报文时的最大数据包大小，默认为8192。你可以在OC模组的配置文件中修改此数值。  &lt;br /&gt;
报文中的每个值都会使其开头增加2字节。（就算只有一个值也会添加）  &lt;br /&gt;
数字型变量占用8字节，true/false/nil占用4字节，字符串所占字节数与字符串本身的字节数相等，空字符串按照1字节计算。  &lt;br /&gt;
样例：&lt;br /&gt;
* `&amp;quot;foo&amp;quot;`是一个5字节长的数据包；开头添加2字节，内容有3字节长的字符串。&lt;br /&gt;
* `&amp;quot;currentStatus&amp;quot;,300`是一个25字节长的数据包；开头添加4字节，内容有13字节长的字符串和一个占8字节的数字。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `isOpen(port: number): boolean`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;返回指定“端口”是否处于侦听状态。报文只有在传输到开放的端口时才会触发信号。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `open(port: number): boolean`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;开放指定编号的端口，使其开始侦听。开启成功则返回`true`，若已开启则返回`false`。**注： 最大端口号为65535**  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `close([port: number]): boolean`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;关闭指定端口（不指定则默认为全部端口）。若端口成功关闭则返回`true`。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `send(address: string, port: number[, ...]): boolean`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;向指定地址发送一条网络报文。若报文发送成功返回 `true` ，但**不意味着**报文已被接收，只意味着已被发送。我们不提供端口嗅探功能。  &lt;br /&gt;
传递给此函数的所有额外参数都将被作为数据传输。这些参数必须是基本类型：支持`nil`、布尔型、数字型以及字符串型，而不支持表和函数。参阅[[API/serialization/zh|serialization(序列化) API]]以获取将表序列化的方法。  &lt;br /&gt;
额外参数的数量有上限，默认限制为8。此限制可以在OC模组的配置文件中修改，但是**不推荐**这样做。将限制调高可能会使性能较弱的电脑不可避免地经常崩溃，而将限制调低可能会使某些协议无法工作。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `broadcast(port: number, ...): boolean`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;发送一条广播报文。此报文会被发送给所有可到达的网卡。若报文被成功发送则返回 `true`。请注意广播报文**不会**传递给发送这条报文的调制解调器自身。  &lt;br /&gt;
所有额外参数都将作为数据一并发送，参见`send`。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `getStrength(): number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;获取当前发送报文时使用的信号强度。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;仅限无线网卡。&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* `setStrength(value: number): number`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;设置信号强度。若此值被设定为大于0，则发送报文时会同时生成一条无线报文。若调用此函数时设定的强度超出调制解调器的最大信号强度，则会将其信号强度设定为允许的最大值。信号强度越高，发送报文时所需的能量就越多。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;仅限无线网卡。&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* `getWakeMessage():string`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;获取当前设置的唤醒消息。当电脑处于关闭状态时，网卡的任意端口接收到了唤醒消息（某网络数据包第一个参数中的字符串），则电脑会启动。此功能可用于机器人、普通电脑、服务器、无人机以及平板电脑。[[Component/tunnel/zh|连接卡]]也提供了相同的功能。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `setWakeMessage(message: string, [fuzzy: boolean]):string`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;将唤醒消息设定为给定的**字符串**。消息可以模糊匹配（由`fuzzy`参数决定，默认为`false`）。模糊匹配时会忽略网络数据包中的其他参数。&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
当收到来自其他网卡的报文时，此组件会产生名为`modem_message`的信号。 信号的签名为：`localAddress: string, remoteAddress: string, port: number, distance: number, ...`。&lt;br /&gt;
&lt;br /&gt;
* `localAddress`为收到报文的调制解调器组件地址。 - `remoteAddress`为发送报文的调制解调器地址。 - `port`为报文被发送到的端口号。 - `distance`为到发送报文的网卡之间的距离。此值只对无线报文有意义。对于普通报文此值总为0。 - 其他所有值均为发送者一并传输的数据（即`send`与`broadcast`函数中的`...`）。&lt;br /&gt;
&lt;br /&gt;
使用例： ```lua local component = require(&amp;quot;component&amp;quot;) local event = require(&amp;quot;event&amp;quot;) local m = component.modem --获取首选调制解调器组件 m.open(123) print(m.isOpen(123)) -- true --发送信息。 m.broadcast(123, &amp;quot;this is a test&amp;quot;) --等待来自其他网卡的信息。 local _, _, from, port, _, message = event.pull(&amp;quot;modem_message&amp;quot;) print(&amp;quot;Got a message from &amp;quot; .. from .. &amp;quot; on port &amp;quot; .. port .. &amp;quot;: &amp;quot; .. tostring(message)) ```&lt;br /&gt;
&lt;br /&gt;
== 目录 ==&lt;br /&gt;
&lt;br /&gt;
{{:Component/contents/zh}}&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;OCDoc Import</name></author>
	</entry>
</feed>