资源简介
把tcp服务器端放在虚拟机上后台运行就不用管了,然后tcp客户端程序放到开发板上,当要获取虚拟机上的程序时,直接运行./tcp_client /opt/xx.xx 后面那个参数是文件路径和文件名。然后客户端会自动下载文件到当前运行的目录。测试了一下3M的文件,效果还不错,一下就穿完了。当再次需要获取文件时,只需再运行./tcp_client /opt/xx.xx 即可,虚拟机端不用动。虽然没什么技术含量,但确实帮我省了不少事,所以就写下来了,如果你也有一样的烦恼不妨也自己写一个吧。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include//close()
#include//struct sockaddr_in
#include//inet_ntoa
#define DEST_PORT 8001
#define DEST_IP_ADDRESS “192.168.1.232“
/*¿Í»§¶ËµÄŽŠÀí¹ý³Ì*/
char * indexLastofString(char *strchar c)
{
int len=0iktemp=0flag=0;
char *s;
s=str;
while(*s++)
len++;
s=str;
//len=strlen(str);
//printf(“len %d\n“len-1);
for(i=len-2;i>=0;i--)
{
if(str[i]==c)
{
temp=i;
flag=1;
// printf(“temp %d\n“temp);
break;
}
}
if(flag)
{
for(k=0;k<=len-temp;k++)
{
*s++=str[temp+1+k];
}
*s=‘\0‘;
}
else
{
*s=‘\0‘;
}
return str;
}
int main(int argcchar **argv)
{
int sock_fd;
int flag=0;
int data_len;
FILE *stream;
int send_num;
int recv_num;
char send_buf[50];
char recv_buf[1024];
char remes[50];
char *filename;
int k;
if(argc!=2)
{
printf(“参数错误,清输入两个参数\n“);
exit(1);
}
memset(remes050);
strcpy(send_buf“/root/Desktop/“);
strcat(send_bufargv[1]);
struct sockaddr_in addr_serv;//·þÎñÆ÷¶ËµØÖ·
sock_fd = socket(AF_INETSOCK_STREAM0);
if(sock_fd < 0){
perror(“sock“);
exit(1);
} else {
printf(“sock sucessful:\n“);
}
memset(&addr_serv0sizeof(addr_serv));
addr_serv.sin_family = AF_INET;
addr_serv.sin_port = htons(DEST_PORT);
addr_serv.sin_addr.s_addr = inet_addr(DEST_IP_ADDRESS);
if( connect(sock_fd(struct sockaddr *)&addr_servsizeof(struct sockaddr)) < 0)
{
perror(“connect“);
printf(“connect (%d)\n“errno);
exit(1);
}
else
{
printf(“connect sucessful\n“);
}
printf(“begin send %s\n“send_buf);
send_num = send(sock_fdsend_bufsizeof(send_buf)0);
if (send_num < 0){
perror(“send“);
printf(“send failure\n“);
exit(1);
}
else
{
printf(“send sucess:%s\n“send_buf);
}
recv_num = recv(sock_fdremes70);
if(recv_num < 0){
perror(“recv“);
exit(1);
}
else
{
//remes[recv_num]=‘\0‘;
printf(“recv sucess:%s to find the file %d \n“remesrecv_num);
if(!strcmp(remes“failure“))
{
printf(“the service have not the file please select the right file again\n“);
exit(1);
}
if(!strcmp(remes“success“))
{
printf(“ready to get file“);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4306 2014-05-07 11:53 tcpfile\tcp_client.c
文件 4542 2014-05-07 12:10 tcpfile\tcp_server.c
目录 0 2014-05-07 12:33 tcpfile\
相关资源
- 32位ARM的ALU设计基于FPGA
- QT闹钟alarm
- 基于ARM7的GPRS程序代码
- arm-linux-gcc-4.3.2交叉编译
- 基于arm的网络视频监控系统
- ARM LINUX 进程间通讯 共享内存
- FriendlyARM 友善之臂 USB驱动 WIN7_64
- 3G模块在ARM开发板上实现ppp拨号上网
- 现代谱估计SVD-TLSARMA最小二乘方法
- S3C2440资料3时钟控制器,电源
- ws.hbang.newterm2_2.0_iphoneos-arm[1249].deb
- strace-fix-arm-bad-syscall.patch
- ARM&linux嵌入式系统教程每章答案-马忠
- ARM嵌入式系统源程序-游蛇吃豆
- ARM嵌入式系统源程序-井字棋
- ADS1.2-ARM集成开发环境链接
- keil uVision4 for ARM Cortex-M3 使用汇编
- NXPARM--ISP 软件 NXP_LPC_ISPV12 汉化
- pycharm-professional-2018.1.3.tar.gz
- qt-everywhere-opensource-src-5.6.0.tar.gz
- linux,windosarm 三版本lcx
- 基于ARM嵌入式系统的交通灯设计
- nfs windows版本
- 在ARM9和ARMLinux下利用QT编写的实时数据
- PyCharm主题配色方案
- ARM 英文文献
- Kennedy J Eberhart R. Particle Swarm Optimizat
- AT91SAM7SXX的USART_PDC通信
- PXA270DB开发板资料
- CCD摄像头驱动及应用程序
评论
共有 条评论