如果用户在实际编程中经常需要反复调用函数接收数据
那么应该将接收数据的功能代码封装为自定义函数
这样,不仅减少了在代码中相互调用的错误
还方便用户阅读代码
void CMy2Dlg::Myrecv(SOCKET s,char *buff,int len,int flags)
{
addr.sin_family=AF_INET;//填充套接字地址结构
addr.sin_port=htons(80);
addr.sin_addr.S_un.S_addr=inet_addr("218.6.132.5");
s=::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);//创建套接字
int num=0;//定义接收数据的字节数
num=::recv(s,&buff,len,flags);//调用函数接收数据
if(num==0)//判断接收是否成功
{
MessageBox("接收数据失败!");//提示用户接收失败
}
else
{
MessageBox("接收数据成功!");提示用户接收成功
}
}
在自定义接收函数Myrecv()中
其参数与recv()的参数所表示的意义相同
返回类型为void
先创建套接字
还要定义字节数
接收数据 要判断数据接收是否成功
s是套接字
num判断是否接收成功