socket编程过程中的一些整理(1)

来源:互联网 发布:淘宝宝贝上下架时间 编辑:程序博客网 时间:2024/05/18 07:34

最近在做相关socket方面的一个小程序,就做了一些小整理:

1.UDP:每次最多传65536(64Kb)的大小,TCP:没有限制,具体没试过,因为我限制是32K。

2.如果发送文件的话,再接收端那边最好使用recv(fd, buf, size, MSG_WAITALL) 接收,不然的话,有可能会出现乱码,size是和客户端商量好的

3.如果打开一个比较大的文件最好用fopen64(path.data(),"rb"),因为fopen貌似最多只能打开2GB的文件

4.fp=fopen64(path.data(),"wb+")会以读写的方式打开,如果不存在就创建文件,但如果你写东西进fp的话,他会以重写的方式写入,所以不建议采用,最好用

 FILE * fp;

   if((fp = fopen64(path.data(),"rb")) == NULL)

 {

        if((fp = fopen64(path.data(),"w")) == NULL)

       {

             cout<<"创建文件失败"<<endl;

             return -1;

      }

 }

  fclose(fp);

  if((fp = fopen64(path.data(),"rb+")==NULL)

{

      cout<<"读写方式打开文件失败"<<endl;

}

fseek(fp5, offset, SEEK_SET);
//            size_t size = fwrite(buf, 1, csize, fp);
//            fclose(fp);

  这样来打开文件,把内容写进去。

5.atoi(recvBuf);将char * 转化为int

6.int size = 5;

sprintf(sizeBuf,"%d",size);将int 转化为char *