弱弱的问一个关于socket发送数据问题,
初始化、链接之类的都处理完毕之后,用 send(m_hSocket,temp,1024,0);发送数据之后
如果此时还想发送第二批数据,是否还需要重新初始化、链接服务器之类的操作后再发送?
如果我需要在不同的时间发送若干次这样的数据,是不是每次都需要初始化、connect连接服务器?
能否链接一次,发送多次数据,发送完毕之后关闭连接?
一个初级问题,还请大侠指教
初始化、链接之类的都处理完毕之后,用 send(m_hSocket,temp,1024,0);发送数据之后
如果此时还想发送第二批数据,是否还需要重新初始化、链接服务器之类的操作后再发送?
如果我需要在不同的时间发送若干次这样的数据,是不是每次都需要初始化、connect连接服务器?
能否链接一次,发送多次数据,发送完毕之后关闭连接?
一个初级问题,还请大侠指教
我知道楼主为什么会这么问,他是看了一些诱导人的书。只教人初始化,发送一次,关闭套接字。那样是误导的行为。其实连接服务器,最总要的意义就在 套接字上面,只要套接字有了,你这个程序可以跑遍无数个函数可以用。列入 SOCKET client = Connectsion(....);连接成功后,这个 client 就是套接字所在,。
你把他存起来, 没丢失前都可以用
{
CString strError;
int error;
ASSERT(pDlg!=NULL);
SOCKET s=accept(pDlg->m_hSocket,NULL,NULL);
if(s==SOCKET_ERROR)
{
strError.Format("Accept Error:%d ",error=WSAGetLastError());
AfxMessageBox(strError);
closesocket(pDlg->m_hSocket);
return -1;
}
RevFile(s); //接受信息
}
客户端:
初始化完毕之后;连续发送两次数据,如下
send(m_hSocket,temp1,1024,0);
send(m_hSocket,temp2,1024,0);问题是,服务器端,只能接受第一次发来的数据temp1,对temp2无法接受,
跟踪了一下,是accept(pDlg->m_hSocket,NULL,NULL);这个语句只执行了一次再问大侠,如何能够接受两次发送的数据呢?