如发送两个整型或者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是多少,就是发送方发送了多少数据?

解决方案 »

  1.   

    这个很简单,你最好自己定义一个结构,不如:
    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));
    ////
    发送了多少数据一般要做一个包头,在包头里面就要说明你发送的数据是多少,然后接收方先处理包头,就知道要接收多少数据了