当前位置:首页 > 代码 > 正文

代码实现文件传输(网络编程实现文件传输)

admin 发布:2022-12-19 18:56 157


今天给各位分享代码实现文件传输的知识,其中也会对网络编程实现文件传输进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

用C语言实现socket文件传输?

服务端代码:

#include stdio.h

#include stdlib.h

#include errno.h

#include string.h

#include sys/types.h

#include netinet/in.h

#include sys/socket.h

#include sys/wait.h

#define MYPORT 3490 /*定义用户连接端口*/

#define BACKLOG 10 /*多少等待连接控制*/

main()

{

int sockfd, new_fd; /* listen on sock_fd, new connection on new_fd

*/

struct sockaddr_in my_addr; /* my address information */

struct sockaddr_in their_addr; /* connector's address information */

int sin_size;

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {

perror("socket");

exit(1);

}

my_addr.sin_family = AF_INET; /* host byte order */

my_addr.sin_port = htons(MYPORT); /* short, network byte order */

my_addr.sin_addr.s_addr = INADDR_ANY; /* auto-fill with my IP */

bzero((my_addr.sin_zero),; /* zero the rest of the struct */

if (bind(sockfd, (struct sockaddr *)my_addr, sizeof(struct

sockaddr))== -1) {

perror("bind");

exit(1);

}

if (listen(sockfd, BACKLOG) == -1) {

perror("listen");

exit(1);

}

while(1) { /* main accept() loop */

sin_size = sizeof(struct sockaddr_in);

if ((new_fd = accept(sockfd, (struct sockaddr *)their_addr, \

sin_size)) == -1) {

perror("accept");

continue;

}

printf("server: got connection from %s\n", \

inet_ntoa(their_addr.sin_addr));

if (!fork()) { /* this is the child process */

if (send(new_fd, "Hello, world!\n", 14, 0) == -1)

perror("send");

close(new_fd);

exit(0);

}

close(new_fd); /* parent doesn't need this */

while(waitpid(-1,NULL,WNOHANG) 0); /* clean up child processes */

}

}

客户代码:

#include stdio.h

#include stdlib.h

#include errno.h

#include string.h

#include sys/types.h

#include netinet/in.h

#include sys/socket.h

#include sys/wait.h

#define PORT 3490 /* 客户机连接远程主机的端口 */

#define MAXDATASIZE 100 /* 每次可以接收的最大字节 */

int main(int argc, char *argv[])

{

int sockfd, numbytes;

char buf[MAXDATASIZE];

struct hostent *he;

struct sockaddr_in their_addr; /* connector's address information */

if (argc != 2) {

fprintf(stderr,"usage: client hostname\n");

exit(1);

}

if ((he=gethostbyname(argv[1])) == NULL) { /* get the host info */

herror("gethostbyname");

exit(1);

}

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {

perror("socket");

exit(1);

}

their_addr.sin_family = AF_INET; /* host byte order */

their_addr.sin_port = htons(PORT); /* short, network byte order */

their_addr.sin_addr = *((struct in_addr *)he-h_addr);

bzero((their_addr.sin_zero),; /* zero the rest of the struct */

if (connect(sockfd, (struct sockaddr *)their_addr,sizeof(struct

sockaddr)) == -1) {

perror("connect");

exit(1);

}

if ((numbytes=recv(sockfd, buf, MAXDATASIZE, 0)) == -1) {

perror("recv");

exit(1);

}

buf[numbytes] = '\0';

printf("Received: %s",buf);

close(sockfd);

return 0;

}

我正在做一个java 聊天程序,要实现传输文件功能,求大神指导~~~最好有示例代码。。

如果是HTTP协议和FTP协议的,java版本的见代码

InputStream ios=new URL("文件bom.zip所在的WEB目录/bom.zip").openConnection().getInputStream();

BufferedOutputStream bout=new BufferedOutputStream(new FileOutputStream("c:/存放目录/bom.zip"));

byte buff[]=new byte[1024];

int count;

while((count=ios.read(buff))0){

bout.write(buff, 0, count);

}

ios.close();

bout.close();

VB WINSOCK 实现文件传输

可以在senddata的时候在数据前加入标识,如将fn=“fn [文件名]”,接收时可以用left函数提取标识,如Winsock1.GetData fn后 a = left(fn,2) if a = “fn" then ……

仅20行代码,实现文件自动化上传至sftp

最近接到一个产品需求是给指定的 sftp 服务器的指定目录定时推送文件数据。

因为项目组已有现成的组件可以轻松实现 sftp 服务器文件的快速上传,本来是一件很容易的事情,但是问题出现在这个指定的 sftp 服务器所指定的密码带有系统关键字和一些特殊字符,导致现在的组件在解析过程中会失败。

因此重新开发了下面的这套脚本来满足这个特殊的需求。

Python代码

sftp配置文件代码

(1). yaml 模块

导入 yaml 模块前可以使用以下命令进行模块的安装

yaml 模块在这里的作用是读取 sftp 配置文件代码,将指定key: test_file_upload 下的 key:value 的值转换为字典。

例如:load_config_from_param_conf 函数中的返回值就是使用 yaml 读取到 sftp 配置文件代码后,返回 key: test_file_upload 下配置选项值。

格式如下:

最后将返回值传给 upload 函数作为参数。

(2). OptionParser 模块

按照 yaml 模块的安装方法,先安装 optparse 模块后,然后在文件中从optparse 中导入 OptionParser 模块

在这里我使用了 OptionParser 这个类实例化了一个对象:opt_parser,通过对象来调用 add_option 方法添加了2个参数,分别是:node, local_file

1). 形参:--node,实参:node

所代表的业务含义是:指定要上传的 sftp 的节点,具体参数值对应 sftp配置文件代码中的 test_file_upload

2). 形参:--local_file,实参:local_file

所代表的业务含义是:指定本地需要被上传到 sftp 服务器的具体文件路径

3). 调用命令

4). add_option()方法

参数:action的枚举

store: 参数列表中带有--node, 那么就会将下一个元素即:test_file_upload 作为其 dest 实参 node 的值; 如果没有--node,那么对应的node的值就为 None;

store_true: 参数列表中有--local_file, 那么其 dest 实参 local_file 的值就为 True; 否者就为 default 定义的默认值,这里没有给定 default 的默认值;

store_false: 参数列表中有--local_file, 那么其 dest 实参 local_file 的值就为 False; 否者就为 default 定义的默认值,这里没有给定 default 的默认值;

参数:type

type是指定传入参数的类型,这里的参数类型为 string 类型。

参数:dest

dest是参数传入后由哪个变量来存储的,后面代码对该参数的引用也是使用这里定义的变量名来引用的。

参数:default

default 是与 action 的值结合使用的。

参数:help

help相当于帮助说明文档,用于描述这个参数的含义。

文件传输程序代码

HTML

script language="VB" runat=server

Sub UploadBtn_Click(Sender as Object, E as EventArgs)

UploadFile.PostedFile.SaveAs(Server.MapPath("test.jpg"))

MyImage.ImageUrl = "test.jpg"

MyImage.Visible = true

End Sub

/script

body

form enctype="multipart/form-data" runat=server

h3

Select File To Upload: input id="UploadFile" type=file runat=server

ASP:button Text="Upload Me!" OnClick="UploadBtn_Click" runat=server/

hr

ASP:image id="MyImage" Visible=false runat=server/

/form

/body

/HTML给分吧

关于代码实现文件传输和网络编程实现文件传输的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/18880.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载