linux 下 C 语言实现文件传输的简单实例
实例来自互联网,这段测试代码实现了基本的文件传输原理,没有实现错误处理。
//
// file_server.c 文件传输顺序服务器示例
//
// 本文件是服务器的代码
#include // for sockaddr_in
#include // for socket
#include // for socket
#include // for printf
#include // for exit
#include // for bzero
/*
#include
#include
#include
#include
*/
#define HELLO_WORLD_SERVER_PORT 6666
#define LENGTH_OF_LISTEN_QUEUE 20
#define BUFFER_SIZE 1024
#define FILE_NAME_MAX_SIZE 512
int main(int argc, char **argv)
{
// 设置一个 socket 地址结构 server_addr, 代表服务器 internet 地址 , 端口
struct sockaddr_in server_addr;
bzero(&server_addr,sizeof(server_addr)); // 把一段内存区的内容全部设置为 0
server_addr.sin_family = AF_INET;
精选文库
server_addr.sin_addr.s_addr = htons(INADDR_ANY);
server_addr.sin_port = htons(HELLO_WORLD_SERVER_PORT);
// 创建用于 internet 的流协议 (TCP)socket, 用 server_socket 代表服务器 socket
int server_socket = socket(PF_INET,SOCK_STREAM,0);
if( server_socket < 0)
{
printf("Create Socket Failed!");
exit(1);
}
// 把 socket 和 socket 地址结构联系起来
if( bind(server_socket,(struct sockaddr*)&server_addr,sizeof(server_addr)))
{
printf("Server Bind Port : %d Failed!", HELLO_WORLD_SERVER_PORT);
exit(1);