9得票3回答
多个send()调用将合并为一个recv()调用。

我有一个客户端-服务器应用程序。 客户端使用两个不同的send()调用发送一个字符串和一个整数。这两个数据应该存储在服务器上的两个不同变量中。 问题在于,接收到的recv()调用会同时接收到发送的两个变量。因此,通过两个不同的send()发送的两个字符串被链接在一起并存储在第一个recv(...

9得票3回答
C++如何通过socket发送对象?

我是一名有用的助手,以下为您翻译的内容: 我有一个问题要问你。 我有这个类: ` #define DIMBLOCK 128 #ifndef _BLOCCO_ #define _BLOCCO_ class blocco { public: int ID; ...

9得票3回答
JeroMQ 正确关闭

我想知道如何正确关闭JeroMQ,目前我知道三种方法,它们各有优缺点,但我不知道哪一种是最好的。 情况如下: 线程A: 拥有上下文,应提供启动/停止方法 线程B: 实际监听线程 我的当前方法: 线程A static ZContext CONTEXT = new ZContex...

9得票4回答
当套接字关闭时,解除recvfrom的阻塞状态

假设我启动了一个线程来接收某个端口的数据。socket调用将在recvfrom上阻塞。然后,在另一个线程中,我关闭了这个socket。 在Windows上,这将解除recvfrom的阻塞,我的线程执行将终止。 但在Linux上,这并不会解除recvfrom的阻塞,因此,我的线程将永远无所作...

8得票3回答
接收函数(recv())返回0

我有一个非常烦人的问题,我在其他论坛上找到了几次,但是找不到合适的解决方案。问题是recv()在连接的最后几个字节上返回0。以下是一些背景信息。 客户端和服务器应用程序都在同一台机器上运行。 客户端和服务器套接字都是非阻塞的 传输的数据大小为53字节。 当执行最后一个send()/recv...

8得票2回答
在一个套接字上同时使用recv()和send()是否安全?

我记得在某个地方读到过,套接字可以被视为两个独立的半双工通道。这是否意味着同一套接字的 recv() 和 send() 实际上是不相关的? 如果是这样,那么这是定义还是实现特定的? 如果不是,那么这两者如何相互干扰? 谢谢。

8得票3回答
recv()和send()函数是否会自动将网络消息转换为网络字节序?

我很新于套接字编程。我发现在发送消息之前,我们必须将主机字节顺序转换为网络字节顺序。我查看了许多不同网站上给出的示例,但没有人在发送消息之前将其更改为网络字节顺序。他们仅在设置struct sockaddr_in变量的值时(端口号和IP地址的情况下)使用此字节顺序更改。 例如: sock_...

8得票2回答
通过select()信号通知,但是在非阻塞套接字上使用recv()没有返回数据并且出现EAGAIN信号。

我已经从select()获得了用于读取的信号套接字,但是在使用recv调用时没有收到任何数据,而是返回-1,errno==EAGAIN。 我可以保证没有其他线程触及该套接字。 我认为这种行为是不正确的。如果发生来自另一端的后续关闭,我可以期望从recv返回值0(优雅关闭)或其他错误代码,但...

7得票1回答
Python套接字 - 同时发送/接收消息

基本上,我一直在使用socket和线程开发一个简单的聊天室。在我的客户端中,我可以接收和发送消息,但是我的问题是,在循环中,一个消息会在另一个消息之前到达,因此如果我正在发送消息,只有在我发送消息后才能接收数据。我希望它像其他聊天室一样工作,即我可以在发送消息时接收消息。任何帮助都将非常有帮助...

7得票1回答
首次调用recv()后出现"C-传输端点未连接"错误

我刚开始学习用C语言进行网络编程。我做了一些测试,但是卡在一个错误上了。 我有一个客户端: client.c #include <string.h> #include <netdb.h> #include <stdio.h> #include <...