Updated @ 2009-04-03
以一个客户端发送图片给服务端的代码为例子, 分析基于winsock的客户写法
客户端部分
初始化
WSADATA wsaData;
WORD version=MAKEWORD(2,0);
int ret=WSAStartup(version,&wsaData);
发送图片的代码(代码执行托管于一工作线程中)
1. 连接
sockaddr_in addr;
addr.sin_family=AF_INET;//表示在INT上通信
addr.sin_addr.S_un.S_addr=inet_addr(strIP.GetBuffer(0));
addr.sin_port=htons(pDlg->m_iPort);
int ret=0;
int error=0;
ret=connect(pDlg->m_hSocket,(LPSOCKADDR)&addr,sizeof(addr));//主动连接服务器
2.准备发送的数据
略, 就是加载图片的数据
3. 发送数据
int ret1=send(pDlg->m_hSocket, str, str.GetLength(), 0);
4. 断开连接
closesocket(pDlg->m_hSocket);
善后
if(m_hSocket) //假如存在连接, 则关闭之
{
closesocket(m_hSocket);
}
WSACleanup();
有此可见, 对于客户端, 发送数据的过程是非常非常简单的