C套接字数据已连接

时间:2019-12-01 03:59:39

标签: c tcp

我尝试通过TCP连接传输文件(在base64中)和一些其他数据

client -> server: request:file:<filename>
server -> client: file:size:<n>
server -> client: file:data:<base64>
server -> client: file:name:<name>

在c中,我在服务器端这样做

char filelength[64];
sprintf(filelength, "file:length:%d\n", len);
send(threadinfo->fd, filelength, strlen(filelength), 0);            
char fileBase64Data[len+128];
sprintf(fileBase64Data, "file:data:%s\n", buffer);
send(threadinfo->fd, fileBase64Data, strlen(fileBase64Data), 0);
char fileready[128];
sprintf(fileready, "file:name:%s\n", filename);
send(threadinfo->fd, fileready, strlen(fileready), 0);

在客户端,我调用了3次recv(),但是在第2次recv()调用结束时传递了来自第3个send()调用的数据。

当我嗅探数据包时,我看到最后一个字符串“ file:name:”没有在单独的数据包中发送。它被连接到“数据包”的末尾(第二个)。我如何确保它以单独的数据包发送?

Data Payload
 68 f2 a4 49 6b 85 ce 50 18 01 04 d3 1a 00 00 42          h..Ik..P.......B 
 66 58 30 5a 70 62 6d 52 44 62 47 39 7a 5a 55 41          fX0ZpbmRDbG9zZUA 
 30 41 46 39 66 62 57 6c 75 62 33 4a 66 61 57 31          0AF9fbWlub3JfaW1 
 68 5a 32 56 66 64 6d 56 79 63 32 6c 76 62 6c 39          hZ2VfdmVyc2lvbl9 
 66 41 46 39 66 61 57 31 77 58 31 39 54 62 47 56          fAF9faW1wX19TbGV 
 6c 63 45 41 30 41 46 39 66 61 57 31 77 58 31 39          lcEA0AF9faW1wX19 
 32 5a 6e 42 79 61 57 35 30 5a 67 42 66 59 32 78          2ZnByaW50ZgBfY2x 
 76 63 32 56 7a 62 32 4e 72 5a 58 52 41 4e 41 42          vc2Vzb2NrZXRANAB 
 66 58 32 6c 74 63 46 39 66 58 31 39 7a 5a 58 52          fX2ltcF9fX19zZXR 
 66 59 58 42 77 58 33 52 35 63 47 55 41 58 32 31          fYXBwX3R5cGUAX21 
 70 62 6d 64 33 58 32 6c 75 61 58 52 73 64 48 4e          pbmd3X2luaXRsdHN 
 6b 65 57 35 66 5a 6d 39 79 59 32 55 41 58 31 52          keW5fZm9yY2UAX1R 
 73 63 30 64 6c 64 46 5a 68 62 48 56 6c 51 44 51          sc0dldFZhbHVlQDQ 
 41 58 31 39 70 62 58 42 66 58 30 52 6c 62 47 56          AX19pbXBfX0RlbGV 
 30 5a 55 4e 79 61 58 52 70 59 32 46 73 55 32 56          0ZUNyaXRpY2FsU2V 
 6a 64 47 6c 76 62 6b 41 30 41 46 39 4d 5a 57 46          jdGlvbkA0AF9MZWF 
 32 5a 55 4e 79 61 58 52 70 59 32 46 73 55 32 56          2ZUNyaXRpY2FsU2V 
 6a 64 47 6c 76 62 6b 41 30 41 46 39 66 61 57 31          jdGlvbkA0AF9faW1 
 77 58 31 39 58 55 30 46 54 64 47 46 79 64 48 56          wX19XU0FTdGFydHV 
 77 51 44 67 41 58 31 39 70 62 58 42 66 58 30 64          wQDgAX19pbXBfX0d 
 6c 64 45 4e 76 62 57 31 68 62 6d 52 4d 61 57 35          ldENvbW1hbmRMaW5 
 6c 51 55 41 77 41 46 39 66 61 57 31 77 58 31 39          lQUAwAF9faW1wX19 
 4d 62 32 46 6b 54 47 6c 69 63 6d 46 79 65 55 46          Mb2FkTGlicmFyeUF 
 41 4e 41 42 66 58 32 6c 74 63 46 39 66 63 33 52          ANABfX2ltcF9fc3R 
 79 59 33 4e 77 62 67 42 66 58 32 6c 74 63 46 39          yY3NwbgBfX2ltcF9 
 66 63 32 56 30 62 47 39 6a 59 57 78 6c 41 46 39          fc2V0bG9jYWxlAF9 
 66 55 6c 56 4f 56 45 6c 4e 52 56 39 51 55 30 56          fUlVOVElNRV9QU0V 
 56 52 45 39 66 55 6b 56 4d 54 30 4e 66 54 45 6c          VRE9fUkVMT0NfTEl 
 54 56 46 39 46 54 6b 52 66 58 77 42 66 58 32 78          TVF9FTkRfXwBfX2x 
 70 59 6d 74 6c 63 6d 35 6c 62 44 4d 79 58 32 46          pYmtlcm5lbDMyX2F 
 66 61 57 35 68 62 57 55 41 58 31 39 66 5a 48 6c          faW5hbWUAX19fZHl 
 75 58 33 52 73 63 31 39 70 62 6d 6c 30 58 32 4e          uX3Rsc19pbml0X2N 
 68 62 47 78 69 59 57 4e 72 41 46 39 66 61 57 31          hbGxiYWNrAF9faW1 
 77 58 31 39 75 64 47 39 6f 63 30 41 30 41 46 39          wX19udG9oc0A0AF9 
 66 64 47 78 7a 58 33 56 7a 5a 57 51 41 58 31 39          fdGxzX3VzZWQAX19 
 66 59 33 4a 30 58 33 68 30 58 32 56 75 5a 46 39          fY3J0X3h0X2VuZF9 
 66 41 46 39 66 62 47 6c 69 64 33 4d 79 58 7a 4d          fAF9fbGlid3MyXzM 
 79 58 32 46 66 61 57 35 68 62 57 55 41 58 33 5a          yX2FfaW5hbWUAX3Z 
 6d 63 48 4a 70 62 6e 52 6d 41 46 39 66 61 57 31          mcHJpbnRmAF9faW1 
 77 58 31 39 46 62 6e 52 6c 63 6b 4e 79 61 58 52          wX19FbnRlckNyaXR 
 70 59 32 46 73 55 32 56 6a 64 47 6c 76 62 6b 41          pY2FsU2VjdGlvbkA 
 30 41 46 39 66 61 57 31 77 58 31 39 6d 64 33 4a          0AF9faW1wX19md3J 
 70 64 47 55 41 0a 66 69 6c 65 3a 6e 61 6d 65 3a          pdGUA.file:name: 
 73 65 72 76 65 72 2e 65 78 65 0a                         server.exe.

0 个答案:

没有答案