Socket Send问题
1. 服务器
由一个且只有一个线程,来发送。
2. 客户端
由一个且只有一个线程,来接收。
现象:
当服务器和客户端,同时运行与本地时,没有问题。
但是,当远程客户端访问本地服务器时,recvBuf可能有误。
比如,服务器注释处,依次发送的str为 "111111", "222222", "333333"
在客户端注释处,解析的可能为"111111", " 222", " 333", " 222", " 333"。
请高手解释。
由一个且只有一个线程,来发送。
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"。
请高手解释。
...全文
相关推荐
socket send和recv详解
send 和recv 详解,绝对好东西。
socket之send函数使用[代码]
本文介绍了如何使用C语言中的socket编程实现send函数发送数据。示例代码展示了如何创建一个socket连接,连接到远程服务器,并通过send函数发送HTTP请求。代码中包含了必要的头文件、socket创建、服务器地址配置、连接建立以及数据发送的完整流程。通过该示例,读者可以学习到基本的socket编程方法和send函数的使用技巧。
socket传输结构体的解决办法
socket传输结构体的解决办法,一般的socket只能传输字符串,怎么解决这个问题呢?看看这个吧
socket tcp如何防止多次send的包被合成一个包(粘包)发送.zip
socket tcp如何防止多次send的包被合成一个包(粘包)发送.zip
socket_send_buf_thread.zip
这个是socket网络发送线程。使用这个线程,可以并行运行。有效的减小了时间,提高了发送的速率。


网络编程
