C++ 套接字发送不传输 CR 和 LF
c++ socket send don't transmit CR and LF
有没有通过套接字发送CR(0x0D)和LF(0x0A)的解决方案
我有一些数据,比如下面的字符缓冲区。我想要一个能够发送一些二进制数据的解决方案(范围应该是完整的8Bit=0x0到0xFF)
套接字"connectedSocket"已成功设置。
char bufSend[] = {0x01, 0x01, 0x0A, 0x04, 0x44, 0x0D, 0x12};
ret = send(connnectedSocket, bufSend, 7, 0);
if(SOCKET_ERROR == ret) {
printf("Error: send, code: %dn", WSAGetLastError());
return 1;
}
我收到了返回消息:10053=WSAECONNABORTED
如果我将数据更改为没有0x0A和0x0D的数据,则没有错误。
客户端用java:编程
if (socket.isConnected()) {
out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())), true);
in = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
// start connection
out.println(CONNECTION_BEGIN);
inMessage = in.readLine();
System.out.println("data length: " + inMessage.length());
您不是在发送行,而是在发送碰巧包含0x0A和0x0D的二进制数据,但不是作为行终止符。所以不要读台词。使用InputStream.read()
。
但很难相信发送这个消息真的会产生ECONNABORTED,而删除两个字节会修复它
编写Java客户端以读取多于一行的内容。问题是Java正在关闭连接。
相关文章:
- 排序<cr>时应最后出现与 '' 的字符串
- std::ofstream 会自动在 之后添加回车符 (CR; \r)
- boost::log 输出到 Visual Studio 输出控制台 - 为格式添加额外的 LF/CR
- 格式“%lf”期望“ double *”类型的论点,但参数2具有“ poly term **”类型
- OpenCV 3:可用FeatureDetector::create()和DescriptorExtractor::cr
- 正在分析具有CR LF EOL结构的.csv文件
- C++ 套接字发送不传输 CR 和 LF
- 为什么在Windows中将CR LF更改为LF
- 信用CR或LF推到下一行
- Cmake构建失败,CMAKE_AR-NOTFOUND (cr exe未找到)
- gzstream在windows上通过mingw注入CR + LF
- 使用std::wcin读取wchar_t总是得到LF (10,0xa)
- 在c++中,seekg似乎包含cr个字符,但是read()去掉了它们
- cout set_precision(5) + 固定和 printf( "%lf.5" ,var) 之间的区别
- 获取 std :: ifstream 来处理 LF、CR 和 CRLF