资源简介
把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\
相关资源
- IAR For ARM 7.3最新注册机
- 郭天祥ARM9视频教程
- IAR ARM 7.8破解
- IAR For ARM V5.5 注册机
- IAR for ARM 7.40 破解
- IAR For ARM 7.4 破解
- arm触摸屏与LCD校准程序三点校准法
- ARM嵌入式项目实战
- 基于ARM蓝牙传输源程序
- USB 驱动 让电脑与arm进行通信
- arm flash 烧写程序源码
- 基于LW IP的嵌入式串口服务器的设计与
- Studies In Vitro and In Vivo of Pharmacologica
- Research on pharmacological effects of lycorin
- ARM64 完整指令集,学习必备
- WINCC报表(OLE-DB Tag and Alarm Export_V8.x
- ARM9指令cache的verilog代码
- 基于ARM7处理器的CAN总线网络设计
- 基于ARM和GPRS的无线通信系统设计
- 关于proteus仿真arm7出现错误的问题
- 基于ARM7的LCD显示电压示波系统的设计
- 基于ARM7和DSP的逆变电源设计电路
- 基于ARM开发板的车辆检测系统控制单
- ARM7TDMI-S在嵌入式系统中的Bootloader代码
- ARM汇编指令集PDF
- 基于ARM7 PWM定时器的图像传感器时序信
- 基于ARM7的分布式远程测控系统设计
- LPC2100系列ARM7微控制器加密ARM芯片
- ARM7内核的中断屏蔽方法
- 基于ARM7TDMI微处理器的矿用电子皮带秤
评论
共有 条评论