vc TCP 接收asynchronous socket error 10053

zjutyww 2010-03-10 10:20:43
做了个tcp接收端,用 SOCKET TOOL 工具做服务端 测试, TCP 接收端 发送到 服务端 可以,但是 服务端 发回来就报错误,socket error 10053,


第一次碰到,

源码如下:

//初始化连接部分

WSADATA wsadata;
if (WSAStartup(0x202, &wsadata) != 0)
{
return false;
}


struct sockaddr_in address_command;
socket_get = socket(AF_INET, SOCK_STREAM, 0);
if (!socket_get)
{
::MessageBox(NULL,"本机网络初始化失败",NULL,MB_OK);
return false;
}



address_command.sin_family = AF_INET;
address_command.sin_addr.s_addr = (remote_ip);
address_command.sin_port = htons(remote_port);

if (connect(socket_get, (struct sockaddr*)&address_command, sizeof(address_command)) < 0)
{
//::MessageBox(NULL,"连接服务器失败",NULL,MB_OK);
return false;
}


//循环等待接收过程
void CTcpRecvThread:: runLoop()
{
char buffer1[10];
int payload_size = 0;

FD_ZERO(&set);
FD_SET((SOCKET)m_socket, &set);

num = select(INT_MAX, &set, NULL, NULL, &tv1);

if (num > 0)
{

int payload_size = recv(m_socket, (char *)recv_buffer,XML_MAX_LEN,0);

}

::Sleep(20);



}
...全文
144 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjutyww 2010-03-16
  • 打赏
  • 举报
回复
数据收到了,是程序后续处理出错,然后 挂了,然后就提示断了
WizardK 2010-03-10
  • 打赏
  • 举报
回复
select非阻塞后,设置超时就可以了,不需要Sleep


struct timeval time;
struct fd_set read;
FD_ZERO(&read);
FD_SET(m_socket,&read);
time.tv_sec=500;
time.tv_usec=0;

num = select(0, &read, NULL, NULL, &time);

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧