小编use*_*421的帖子

Socket:send()函数返回'Broken Pipe'错误

我是套接字编程的新手,我正在尝试使用send()C++中的函数向服务器发送一些数据包,但在向服务器发送数据包时,我总是收到"Broken pipe"错误.你可以帮我解决以下几点吗?

  1. send()函数返回"Broken pipe"错误时?
  2. 套接字编程中出现"Broken pipe"错误的原因是什么?
  3. send()函数的"Broken pipe"错误解决方案是什么?

注意:我使用命名套接字在客户端和服务器之间进行通信.

c++ sockets tcp broken-pipe send

2
推荐指数
1
解决办法
9210
查看次数

SSL握手中的客户端证书认证

我正在浏览 SSL 协议并试图了解 SSL 握手中涉及的步骤。

现在,用于向服务器验证客户端的“客户端证书
身份验证”已完成。我想详细了解“客户端
证书身份验证”中实际发生的情况。

authentication ssl ssl-certificate

2
推荐指数
1
解决办法
5781
查看次数

如何计算十六进制文件中的校验和?

如标题所示,我很想知道如何计算校验和,从我读到的使用2s补码计算得出的值开始。以下是已加载到我的微控制器上的十六进制文件的2行,我添加了空格以使其更易于阅读,S315出现在每一行上,第1行的地址为080C0000,后跟16个十六进制值,代表字节,我假设第1行的AA值和第2行的AB值是校验和值。

对于第1行,我尝试添加以下内容15+08+0C+00+00+4D+53+53+70+6F+74+31+00+66+10+AE+19+7E+63+1F+78,从而得到555十六进制或?010101010101?二进制格式。我已经将二进制值输入到在线2s补码计算器中,但始终显示“无效二进制”?

S3 15 080C0000 4D 53 53 70 6F 74 31 00 66 10 AE 19 7E 63 1F 78 AA

S3 15 080C0010 00 00 00 00 45 85 63 EB FF FF FF FF 04 00 03 00 AB

binary hex

2
推荐指数
1
解决办法
6197
查看次数

如何让javamail支持http代理

我发现javamail只支持socks。有什么解决方案可以用来支持 http 代理吗?

public class MailConnectionTest {
 public static void main(String args[]) throws MessagingException {
   Properties props = MailConnectionTest.getProperties();
   Session session = Session.getDefaultInstance(props, null);
   String protocol = "pop3";
   String host = "pop.163.com";
   String username = "email username";
   String password = "1Qaz2wsx3edc&";
   Store store = session.getStore(protocol);
   store.connect(host, username, password);
   System.out.println("Success");
}
private static Properties getProperties() {
 Properties props = System.getProperties();
 props.put("mail.debug", "false");
 // Proxy
 props.put("proxySet", "true");
 props.put("http.proxyHost", "proxyAdderss");
 props.put("http.proxyPort", "8080");
 return props;
}
}
Run Code Online (Sandbox Code Playgroud)

java jakarta-mail http-proxy

2
推荐指数
1
解决办法
6271
查看次数

Java 错误:请安装 JCE Unlimited Strength Jurisdiction Policy 文件

我正在开发这个 Java 应用程序,它需要访问“JCE Unlimited Strength”文件,并且我确实安装了它们,并且在我构建解决方案(在 Intellij 中)时它可以正常工作但是当我jar输出时,由于某种原因它给出我这个烦人的错误:

C:\Users\h\whatever\out\artifacts\Accepter_jar>java -cp Accepter.jar Main
org.apache.poi.EncryptedDocumentException: Export Restrictions in place - please install JCE Unlimited Strength Jurisdic
tion Policy files
        at org.apache.poi.poifs.crypt.CryptoFunctions.getCipher(CryptoFunctions.java:208)
        at org.apache.poi.poifs.crypt.CryptoFunctions.getCipher(CryptoFunctions.java:182)
        at org.apache.poi.poifs.crypt.agile.AgileDecryptor.hashInput(AgileDecryptor.java:269)
        at org.apache.poi.poifs.crypt.agile.AgileDecryptor.verifyPassword(AgileDecryptor.java:116)
        at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:95)
        at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:282)
        at ExcelJob.loadExcelSheet(ExcelJob.java:22)
        at Main.main(Main.java:17)
Run Code Online (Sandbox Code Playgroud)

知道有什么问题吗?

java jar jce

2
推荐指数
1
解决办法
8144
查看次数

为什么非静态最终成员变量不需要遵循常量命名约定?

我使用的是NetBeans IDE,在Java之前,我是一名C++程序员.从C++开始,我学到的是常量变量名应该只包含大写字母.我认为大多数编程语言都认为常量变量应该只包含带下划线的大写字母来分隔单词.

当我尝试static使用小写字母声明成员变量时,我的IDE NetBeans仅向我发出警告.如果变量是final,但是非静态的,这没关系.

final int mem1 = 90; // no warning
static final int mem2 = 90; // warning
Run Code Online (Sandbox Code Playgroud)

程序员不应该强制使用大写字母来命名任何类型的(静态,非静态)常量变量吗?

java naming netbeans constants naming-conventions

2
推荐指数
2
解决办法
960
查看次数

Java中的EOFexception在读取objectinputstream时

我想读取我输出到.dat文件的多个对象(我自己的类Term),但我总是得到一个nullPointException或EOFException.

ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream(masterFile));
        Object o = null;
        while(( o = inputStream.readObject()) != null){
            Term t = (Term)o;
            System.out.println("I found a term");
        }
Run Code Online (Sandbox Code Playgroud)

java objectoutputstream eofexception

1
推荐指数
1
解决办法
5404
查看次数

为什么我的C编译器发出警告?

初学者问题.我有以下代码:

char input[10];   
scanf("%s", &input);
Run Code Online (Sandbox Code Playgroud)

我的编译器抛出以下警告:

warning: format '%s' expects type 'char *', but argument 2 has type 'char (*)[10]'
warning: format '%s' expects type 'char *', but argument 2 has type 'char (*)[10]'
Run Code Online (Sandbox Code Playgroud)

改为:

char * input;
Run Code Online (Sandbox Code Playgroud)

似乎没有帮助.我究竟做错了什么?

c string gcc

1
推荐指数
2
解决办法
303
查看次数

TCP over UDP VPN是否可靠?

如果我将通过UDP VPN使用它,应用程序中的TCP是否可靠?例如,我有一个应用程序的VPN服务器在10.8.0.1:8080上侦听TCP,我将从主机10.8.0.2到10.8.0.1:8080从TCP连接.它会可靠吗?

|----------|   udp tunnel         |----------|
|  Server  |----------------------|  Client  |
| 10.8.0.1==========tcp=============10.8.0.2 |
|          |----------------------|          |
|----------|                      |----------|
Run Code Online (Sandbox Code Playgroud)

vpn udp tcp openvpn

1
推荐指数
1
解决办法
812
查看次数

带增量的 2 补码是否违反了 c++17 中的执行顺序规则,但不违反 c++14 中的执行规则?

这可能是“ 101”级别的问题,但有一些相关的痛苦,所以我会要求评论以保持自信。

我有一些遗留代码支持返回到及之前的这一行:

iTmp = ~iTmp++;
Run Code Online (Sandbox Code Playgroud)

在代码更改为之前,此方法 100% 有效。更改为后,它会计算出不同的值,但并非总是如此。这取决于该行在代码中的位置,是先执行 2 的补码还是先执行增量。

另外,如果您尝试强制使用括号,则会出现编译器错误:

iTmp = (~iTmp)++;

error C2105: '++' needs l-value
Run Code Online (Sandbox Code Playgroud)

这对我来说很有意义,因为 2 的补码结果不是中间变量,因此 ++ 没有任何可操作的内容。

我的研究告诉我

  1. 这是“”失败。
  2. 并不是这种情况下失败的主要原因。
  3. 二进制补码不是就地操作,因此它不会更改 iTmp,而是返回一个值。
  4. 遗留代码的工作靠运气 - 可能是由于编译器错误或错误总是强制执行运算符评估顺序。

我的评价正确吗?

对我来说,一个非常微妙的区别是前面的代码无效,但这一行可以:

if ( ++iTmp > 0)
Run Code Online (Sandbox Code Playgroud)

我没想到升级到会导致这个微妙的错误,但我不得不将代码更改为以下内容来解决问题:

iTmp = ~iTmp;
iTmp++;
Run Code Online (Sandbox Code Playgroud)

c++ order-of-execution c++14 c++17

1
推荐指数
1
解决办法
180
查看次数