下载此文档

linux文件传输.docx


文档分类:IT计算机 | 页数:约28页 举报非法文档有奖
1/28
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/28 下载此文档
文档列表 文档介绍
第一个

/*************************************************************************
  > File Name:
  > Author: SongLee
 ************************************************************************/
#include<sys/>
#include<sys/>
#include<>
#inet/>
#include<arpa/>
#include<>
#include<>
#include<>
#>
#include<>
#include<>
  
#define SERVER_PORT 8000
#define BUFFER_SIZE 1024
#define FILE_NAME_MAX_SIZE 512
  
/* 包头*/
typedef struct
{
  int id;
  int buf_size;
}PackInfo;
  
/* 接收包*/
struct SendPack
{
  PackInfo head;
  char buf[BUFFER_SIZE];
} data;
  
  
int main()
{
  /* 发送id */
  int send_id = 0;
  
  /* 接收id */
  int receive_id = 0;
  
  /* 创建UDP套接口*/
  struct sockaddr_in server_addr;
  bzero(&server_addr, sizeof(server_addr));
   = ;
   = htonl(INADDR_ANY);
   = htons(SERVER_PORT);
  
  /* 创建socket */
  int server_socket_fd = socket(, SOCK_DGRAM, 0);
  if(server_socket_fd == -1)
  {
    perror("Create Socket Failed:");
    exit(1);
  }
  
  /* 绑定套接口*/
  if(-1 == (bind(server_socket_fd,(struct sockaddr*)&server_addr,sizeof(server_addr))))
  {
    perror("Server Bind Failed:");
    exit(1);
  }
  
  /* 数据传输*/
  while(1)
  {  
    /* 定义一个地址,用于捕获客户端地址*/
    struct sockaddr_in client_addr;
    socklen_t client_addr_length = sizeof(client_addr);
  
    /* 接收数据*/
    char buffer[BUFFER_SIZE];
    bzero(buffer, BUFFER_SIZE);
    if(recvfrom(server_socket_fd, buffer, BUFFER_SIZE,0,(struct sockaddr*)&client_addr, &client_addr_length) == -1)
    {
      perror("Receive Data Failed:");
      exit(1);
    }
  
    /* 从buffer中拷贝出file_name */
    char file_name[FILE_NAME_MAX_SIZE+1];
    bzero(file_name,FILE_NAME_MAX_SIZE+1);
    strncpy(file_name, buffer, strlen(buffer)>FILE_NAME_MAX_SIZE

linux文件传输 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数28
  • 收藏数0 收藏
  • 顶次数0
  • 上传人260933426
  • 文件大小49 KB
  • 时间2017-08-05