Socket Send问题

Shrek_MyCpp Shrek_MyCpp 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
1. 服务器
由一个且只有一个线程,来发送。

while (1)
{
...
// 到发送消息队列里,取消息。
// 此处,通过log文件分析,每次str的值都是正确的。
int n = send(socket, str, MAX_ANSWER_LENGTH, 0);
Sleep(1);
}


2. 客户端
由一个且只有一个线程,来接收。

while(1)
{
char recvBuf[MAX_ANSWER_LENGTH + 1] = {0};
recv(m_socket, recvBuf, MAX_RECV_SQL_LENGTH, 0);
...
// 此处,通过log文件分析,recvBuf可能有误。
}


现象:
当服务器和客户端,同时运行与本地时,没有问题。
但是,当远程客户端访问本地服务器时,recvBuf可能有误。
比如,服务器注释处,依次发送的str为 "111111", "222222", "333333"
在客户端注释处,解析的可能为"111111", " 222", " 333", " 222", " 333"。

请高手解释。
...全文
评论 36
收藏 已收藏
分享
返回顶部
Shrek_MyCpp
网络编程 18,356 成员 64,161 内容