我们正在尝试实施基于Moxa UC-7112-LX嵌入式计算机(uClinux OS)的软件.我们使用Cinteron MC52i GSM调制解调器(常规GPRS服务)和标准pppd连接到互联网.
在连接之后,一切似乎都很好.Ping实用程序正常工作,程序中的Socket函数也正常工作.然而,经过一段时间后,ppp连接以一种非常特殊的方式破碎.这些是这种情况的症状:
connect()而write()在我的应用功能,给没有错误回报,但,当涉及到read()的功能,并将errno设置返回ECONNRESET(连接被对方复位).该程序使用标准套接字函数(TCP协议)ifconfig ppp0)所以,我的情况是:链接是否足以维护DNS解析服务(UDP工作?)但不足以运行TCP连接并接收ping回声...
情况不会一直出现.有时系统可以正常工作几天而没有任何问题.无论何时出现问题,简单的重置都可以解决所有问题.
我知道我们使用的系统非常奇特,这里描述的情况可能与一些错误的tcp堆栈或pppd实现有关.考虑到系统是由制造商预先配置的,我没有任何选项来重建/更改操作系统固件.
我仍然希望有人在任何类似Linux的系统上看到类似的情况.有没有办法测试为什么DNS名称解析工作,而其他网络的东西没有?是否可以使用某些pppd设置删除此类连接状态?
编辑:
首先,我想解决本地缓存IP地址的可能性.我没有dig实用程序,我不知道如何检查哪个主机给出了结果getaddrinfo().我仍然确定地址没有被缓存,因为我试图ping完全随机的URL.另外,由于GPRS响应时间较慢,因此在开始发送数据包之前,没有必要使用时间测量实用程序来确定ping需要1-2秒或更长时间来解析IP.此外ncsd,BIND或任何DNS服务器不在本地计算机上运行.我知道您可能不会将其视为证据,但这就是我在系统上提供的实用工具集.
我想提供一些有关互联网连接操作的其他信息.
正常连接状态
rc系统加载时的脚本运行另一个脚本作为后台进程:
sh /etc/connect &
Run Code Online (Sandbox Code Playgroud)
该connect脚本如下:
#!/bin/sh
echo First connect attempt > /etc/ppp/conn.info
while true
do
date >> /etc/ppp/conn.info
pppd call mts
echo Reconnecting... >> /etc/ppp/conn.info
done
Run Code Online (Sandbox Code Playgroud)
我在这里做了一个循环的原因很简单:连接持续了几个小时,然后它总是断开.不幸的是我的实现pppd不支持logfile选项(所以我不明白它为什么会被破坏).坚持似乎也不起作用,所以我来到上面的连接脚本.pppd选项是:
/dev/ttyM0 115200 crtscts
connect 'chat -f /etc/ppp/peers/mts.chat'
noauth
user …Run Code Online (Sandbox Code Playgroud) 我需要在iText7中创建符合PDF / UA的文档。最重要的要求是标记所有内容。启用标记(通过调用PdfDocument.SetTagged()方法)后,大多数添加到文档中的元素将获得正确的标记。
问题在于表头单元格的标记。根据ISO 32000-1:2008,表标头单元必须标记为TH,表数据单元必须标记为TD(14.8.4.2.4。表元素,表337)。
iText允许使用Table.AddHeaderCell()和Table.AddCell()方法区分标题单元格和常规单元格。此机制可以为行组正确创建THead和TBody标签。不幸的是,细胞本身总是被标记为TD。
这是用于生成表的示例代码:
//var pdfDoc = new PdfDocument(...)
pdfDoc.SetTagged();
var doc = new Document(pdfDoc);
var table = new Table(2);
table.AddHeaderCell("Header 0");
table.AddHeaderCell("Header 1");
table.AddCell("Data 0");
table.AddCell("Data 1");
doc.Add(table);
doc.Close();
Run Code Online (Sandbox Code Playgroud)
这是我们得到的标记结构的示例:
<Table>
<THead>
<TR>
<TD> //must be TH!
<P>
"Header 0"
<TD>
<P>
"Header 1"
<TBody>
<TR>
<TD> //TD is correct here
<P>
"Data 0"
<TD>
<P>
"Data 1"
Run Code Online (Sandbox Code Playgroud)
AddHeaderCell()使用方法时,iText是否可以生成TH标签?
我正在使用iText 7.0.0 for .NET(社区版)