如发送两个整型或者float数据
//发送
int Nx=140,Ny=70;
//或者 float Nx=0.1, Ny=0.2;
n=sprintf(sendBuf,"%d",Nx);
n += sprintf(sendBuf+n,"%d",Ny);
send(sockConn,sendBuf,n,0);接收端:
int Nx,Ny;
n=5;
recv(sockClient,recvTemp,n,0);
recvTemp[n]='\0';
printf("%s",recvTemp);现在我怎么从recvTemp中提取出Nx,Ny的值并且辅给他们?
如果是float型也相同马?
另外,我在接受端怎么确定n是多少,就是发送方发送了多少数据?
//发送
int Nx=140,Ny=70;
//或者 float Nx=0.1, Ny=0.2;
n=sprintf(sendBuf,"%d",Nx);
n += sprintf(sendBuf+n,"%d",Ny);
send(sockConn,sendBuf,n,0);接收端:
int Nx,Ny;
n=5;
recv(sockClient,recvTemp,n,0);
recvTemp[n]='\0';
printf("%s",recvTemp);现在我怎么从recvTemp中提取出Nx,Ny的值并且辅给他们?
如果是float型也相同马?
另外,我在接受端怎么确定n是多少,就是发送方发送了多少数据?
struct mydata
{
int nx;
int ny;
};
////发送
mydata md;
md.nx=140;
md.ny=70;
memcpy(sendBuf,&md,sizeof(mydata));//发送的时候把这个结构的变量复制到要发送的缓冲区send(sockConn,sendBuf,n,0);
/////接收
接收的时候,把接收到的数据在拷贝到这个结构的变量中recv(sockClient,recvTemp,n,0);
memcpy(&md,recvTemp,sizeof(mydata));
////
发送了多少数据一般要做一个包头,在包头里面就要说明你发送的数据是多少,然后接收方先处理包头,就知道要接收多少数据了