C# 访问远程文件夹

C# 访问远程文件夹,第1张

方法:随便打开一个盘。上面有工具-->映射网络驱动器-->驱动器随便选一个(映射完成后显示的本地盘符),文件夹选择哪个共享文件夹。

这样你就可以打开我的电脑 有个网络驱动器的盘。盘符是你刚刚选的驱动器,你就可以 *** 作本地文件的方式来 *** 作了

把那个共享文件夹映射到本地 就可以 *** 作本地文件夹的方式 *** 作远程文件了

1、首先需要在本地设置一个FTP站点

(1)我的电脑——》管理——》本地用户和组——》用户——》新增用户,即设置FTP登录的用户名和密码

(2)其次是在C盘新建文件夹“FTP上传”和“FTP下载”两个文件夹!并在每个文件夹里放不同的文件,以便区分!

(3)之后是安装IIS组件,开始——》控制面板——》程序——》程序和功能——》打开或关闭windows功能

(4)最后就是配置FTP服务器,创建上传和下载服务!创建上传服务器:右键网站->选择添加FTP站点->描述可以根据自己的需要填写->地址一般都是自己的IP地址,端口默认使用21->物理路径指向“C:\FTP上传”->访问权限要钩上“读取”和“写入”->点击完成就把上传的服务创建好了!创建下载服务器:因为21号端口已经被占用所以我们就用2121端口!它的物理路径指向“C:\FTP下载”!只有读取权限!!

(5)最后就可以测试刚才建立的ftp服务器是否建立成功了。在浏览器上输入以下地址ftp://设置站点时ip(在此为本地ip)  即可打开具有上传功能的FTP页面,输入ftp://设置站点时ip(在此为本地ip):2121即可打开只有下载功能的页面了!当然,登录之前还需要你输入开始建立的那个账号及密码:用户名为:。密码为:XXXXXX

这样你需要建立的ftp服务器就建立成功了

服务端代码:

#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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12026876.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存