第一个
/*************************************************************************
> 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转载请标明出处.