C语言N台服务器通信,使用socket的Linux上的C语言文件传输顺序服务器和客户端示例程序 ....
#include */
#define HELLO_WORLD_SERVER_PORT 6666
#define BUFFER_SIZE 1024
#define FILE_NAME_MAX_SIZE 512
int main(int argc, char **argv)
{
if (argc != 2)
{
printf("Usage: ./%s ServerIPAddress/n",argv[0]);
exit(1);
}
//创建用于internet的流协议(TCP)socket,用client_socket代表客户机socket
int client_socket = socket(AF_INET,SOCK_STREAM,0);
if( client_socket < 0)
{
printf("Create Socket Failed!/n");
exit(1);
}
//设置一个socket地址结构server_addr,代表服务器的internet地址, 端口
struct sockaddr_in server_addr;
bzero(&server_addr,sizeof(server_addr));
server_addr.sin_family = AF_INET;
if(inet_aton(argv[1],&server_addr.sin_addr) == 0) //服务器的IP地址来自程序的参数
{
printf("Server IP Address Error!/n");
exit(1);
}
server_addr.sin_port = htons(HELLO_WORLD_SERVER_PORT);
socklen_t server_addr_length = sizeof(server_addr);
//向服务器发起连接,连接成功后client_socket代表了客户机和服务器的一个socket连接
if(connect(client_socket,(struct sockaddr*)&server_addr, server_addr_length) < 0)
{
printf("Can Not Connect To %s!/n",argv[1]);
exit(1);
}
char file_name[FILE_NAME_MAX_SIZE+1];
bzero(file_name, FILE_NAME_MAX_SIZE+1);
printf("Please Input File Name On Server:/t");
scanf("%s", file_name);
char buffer[BUFFER_SIZE];
bzero(buffer,BUFFER_SIZE);
strncpy(buffer, file_name, strlen(file_name)>BUFFER_SIZE?BUFFER_SIZE:strlen(file_name));
//向服务器发送buffer中的数据
send(client_socket,buffer,BUFFER_SIZE,0);
// int fp = open(file_name, O_WRONLY|O_CREAT);
// if( fp < 0 )
FILE * fp = fopen(file_name,"w");
if(NULL == fp )
{
printf("File:/t%s Can Not Open To Write/n", file_name);
exit(1);
}
//从服务器接收数据到buffer中
bzero(buffer,BUFFER_SIZE);
int length = 0;
while( length = recv(client_socket,buffer,BUFFER_SIZE,0))
{
if(length < 0)
{
printf("Recieve Data From Server %s Failed!/n", argv[1]);
break;
}
// int write_length = write(fp, buffer,length);
int write_length = fwrite(buffer,sizeof(char),length,fp);
if (write_length{
printf("File:/t%s Write Failed/n", file_name);
break;
}
bzero(buffer,BUFFER_SIZE);
}
printf("Recieve File:/t %s From Server[%s] Finished/n",file_name, argv[1]);
close(fp);
//关闭socket
close(client_socket);
return 0;
}
C语言N台服务器通信,使用socket的Linux上的C语言文件传输顺序服务器和客户端示例程序 ....相关推荐
- 使用socket的Linux上的C语言文件传输顺序服务器和客户
服务器端程序的编译 gcc -o file_server file_server.c 客户端程序的编译 gcc -o file_client file_client.c 服务器程序和客户端程应当分别运 ...
- linux 交换机tftp服务,简单文件传输TFTP服务器搭建 Linux RHEL6
Tftp的应用场合 1.交换机或路由器升级或备份 2.无盘工作站存放bootloader 3.嵌入式开发时装载系统 4.大规模的服务安装布署 安装 1.# yum install xinetd # y ...
- Java网络编程入门,包含网络相关概念、InetAddress类、套接字Socket、网络上传和下载文件等
Java学习-11-韩顺平老师 Java-网络编程入门 目录: 01-网络相关概念 02-InetAddress类 03-套接字Socket 04-网络上传和下载文件 05-UDP网络编程 网络编程相 ...
- 手机传输文件服务器,手机文件传输到服务器
手机文件传输到服务器 内容精选 换一换 本节操作介绍如何在Windows操作系统的本地主机上使用FTP上传文件到云服务器.已在待上传文件的云服务器中搭建 FTP 服务.如果您的云服务器为 Window ...
- 手机文件传到服务器,手机文件传输到服务器
手机文件传输到服务器 内容精选 换一换 Winscp无法连接到服务器.SSH连接工具例如Xshell可以正常连接云服务器.其他SSH工具连接云服务器正常,但是Winscp无法连接到服务器.说明SSH服 ...
- python发送文件到服务器_python 使用poster模块进行http方式的文件传输到服务器的方法...
这几天帮内部人员做一个文件传输的小工具,要用http的方式,在用django搭建了个小框架之后,如何进行传输,特别是大文件的传输,成为主要问题.经过查资料,最后选择了通过poster这个模块来进行文件 ...
- python文件传输模块_[宜配屋]听图阁 - python 使用poster模块进行http方式的文件传输到服务器的方法...
这几天帮内部人员做一个文件传输的小工具,要用http的方式,在用django搭建了个小框架之后,如何进行传输,特别是大文件的传输,成为主要问题.经过查资料,最后选择了通过poster这个模块来进行文件 ...
- python调用http方法_python 使用poster模块进行http方式的文件传输到服务器的方法
这几天帮内部人员做一个文件传输的小工具,要用http的方式,在用django搭建了个小框架之后,如何进行传输,特别是大文件的传输,成为主要问题.经过查资料,最后选择了通过poster这个模块来进行文件 ...
- Linux上配置BIP语言编译器及引擎
BIP语言是一个强大的建模语言,本文将介绍如何在Linux上对BIP语言的编译器和引擎进行安装,并运行一个BIP2语言的HelloWorld程序.BIP语言的编译器仅在GNU/Linux系统上做过测试 ...
最新文章
- Socket通信总结(附C++实现)
- SAP 货物移动 BAPI 的简单使用 BAPI_GOODSMVT_CREATE
- 鹿妮倍半机器人_功能纳米组装体中多面体低聚倍半硅氧烷的旋压
- Oracle 11g RAC SCAN ip的原理及配置
- python random randint_python中random.randint和random.randrange的区别详解
- Aligning Plots in a Column作图列对齐
- css 相同的css属性_CSS中的order属性
- JavaScript常用算法
- linux 删除sysadm用户,linux 用户和组命令整理及详细介绍
- SQL语句练习-入门篇
- Android 判断当前身份证格式是否正确
- 已解决Pandas requires version ‘1.4.0‘ or newer of ‘sqlalchemy‘ (version ‘0.7.10‘ currently installed).
- 阿里云服务器购买步骤
- 锐龙R7PRO 4750G、锐龙R5 PRO 4650G和 锐龙R3 PRO4350G怎么样 哪个好
- 0x300-从头开始写操作系统-内核
- 朴素贝叶斯情感分析评分python_朴素贝叶斯算法下的情感分析——C#编程实现
- 0926物体检测和数据集
- Java EXCEL 表格导入导出(带下拉选-带VLOOKUP函数封装)
- Intellij IDEA 在win10 中输入法的输出框不跟随
- 证券投资学原理(韩德宗 朱晋)知识点
热门文章
- php中参数传值的三种方法,php cli传递参数的方法
- 国防科大天河计算机应用,国防科大计算机学院:让本科生进入“天河”团队
- 【加速实践】番外篇:numbajit
- html 怎么自动让图片居中显示,css中怎样让图片居中显示?
- ceph编译_Ceph编译:L版本及其之后的版本
- python生成dat文件_Ra-使用Python脚本生成shape.dat文件
- BPMF论文辅助笔记: 固定U,更新θU 部分推导
- 基于SIFT特征的全景图像拼接
- Matlab分布式和并行编程
- 支持向量机SVM原理