要在linux下做一个模仿ftp的小型服务器,后来在百度文库中找到一份算是比较完整的实现,就在原代码一些重要部分上备注自己的理解(可能有误,千万不要轻易相信)。
客户端:
客户端要从服务器端中读取数据,然后将read到的数据存在rcv_buf数组中,再使用atoi函数将rcv_buf中的数字字符提取出来(atoi提取数字时有着自己的规则),这样客户端解可以根据reply_code这个返回值来判断服务器要告诉自己什么。
1 2 //从套接字描述sock_fd中获取服务器的回复// 3 int resp_from_server(int sock_fd) 4 { 5 static int reply_code=0,count=0; 6 char rcv_buf[512]; 7 count=read(sock_fd, rcv_buf, 510); 8 if(count>0) //如果从服务器端读取数据成功,那么就向服务器反馈reply_code=atoi(rcv_buf);然后服务器端用recv_client_info(client_sock);来接收反馈信息 9 { 10 reply_code=atoi(rcv_buf); //atoi函数把字符串转化成整型数,该函数返回转换后的长整数,如果没有执行有效的转换,则返回零。 11 //该函数要求被转换的字符串是按十进制数理解的。 12 } 13 else 14 return 0; 15 while(1) 16 { 17 if(count<=0) 18 break; 19 rcv_buf[count]='