基于TCP的简单FTP程序
来源:互联网 发布:淘宝分类图标素材 编辑:程序博客网 时间:2024/05/29 14:52
/*server.c*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include<fcntl.h>
#include<sys/stat.h>
#define MAXLINE 50
typedef struct sockaddr SA;
int main(int argc, char **argv){
int listenfd, connfd;
int fd;
socklen_t clilen;
char buffer[1024];
struct sockaddr_in myaddr, cliaddr;
char buf[MAXLINE] = "Welcome to TCP Server";
if ((listenfd = socket(PF_INET, SOCK_STREAM, 0)) < 0){
perror("fail to socket");
exit(-1);
}
bzero(&myaddr, sizeof(myaddr));
myaddr.sin_family = PF_INET;
myaddr.sin_addr.s_addr = htonl(INADDR_ANY);
myaddr.sin_port = htons(8889); /* port number */
if (bind(listenfd, (SA *) &myaddr, sizeof(myaddr)) < 0){
perror("fail to bind");
exit(-1);
}
listen(listenfd, 100);
fd=open("/root/gusheng",O_RDWR);
clilen = sizeof(cliaddr);
connfd = accept(listenfd, (SA *) &cliaddr, &clilen);
printf("connection from %s, port %d/n",inet_ntoa(cliaddr.sin_addr),
ntohs(cliaddr.sin_port));
int nbytes;
if((nbytes=read(fd,buffer,1024))==-1)
{
exit(1);
}
buffer[nbytes]='/0';
printf("Server received %s/n",buffer);
/*wtite to socket */
int ret;
if (( ret = write(connfd, buffer, nbytes)) < 0)
{
perror("ERROR writing to socket");
}
close(connfd);
return 0;
}
/*client*/
//tcp_client.c
#include<fcntl.h>
#include<sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define MAXLINE 50
typedef struct sockaddr SA;
int main(int argc, char **argv){
int sockfd, nbyte;
struct sockaddr_in servaddr, myaddr;
char buf[MAXLINE];
if ((sockfd = socket(PF_INET, SOCK_STREAM, 0)) < 0){
perror("fail to socket");
exit(-1);
}
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = PF_INET;
servaddr.sin_addr.s_addr = inet_addr("192.168.1.211"); //server ip;
servaddr.sin_port = htons(8889); /* port number */
if (connect(sockfd, (SA *) &servaddr, sizeof(servaddr)) < 0){
perror("fail to connect");
exit (-1);
}
printf("ddd/n");
int fp2;
fp2 = open("/root/gusheng1.txt",O_WRONLY | O_CREAT);
int c;
c = read(sockfd,buf,MAXLINE);
write(fp2,buf,c);
close(fp2);
if ( (nbyte = recv(sockfd, buf, MAXLINE, 0)) < 0){
perror("fail to recv");
exit(-1);
}
//printf("recv from server : %s/n", buf);
return 0;
}
- 基于TCP的简单FTP程序
- 模拟一个简单的基于tcp的远程关机程序
- 基于TCP/IP的简单的聊天程序
- linux下基于TCP简单的socket通信程序
- 基于TCP与UDP的简单聊天程序
- 基于TCP/IP 协议的简单C/S程序
- 实现基于TCP/IP协议的简单Client/Server程序
- 基于socket的简单tcp客户端与服务端程序
- linux下基于tcp的FTP编程
- 基于TCP的简单服务器
- 基于TCP的socket程序
- 基于TCP的ECHO程序
- 一个简单的基于node.js的TCP服务器和基于C++的TCP客户端通信示例程序
- 基于django的简单ftp实现
- 基于FTP协议的WinSock程序实现
- 简单的TCP/UDP程序
- 简单的tcp通信程序
- 简单的IOCP程序(TCP)
- 走什么路
- 基于UDP简单聊天程序
- 毕业设计头痛
- POJ 3253 Fence Repair Huffman
- c语言 复杂声明 解析
- 基于TCP的简单FTP程序
- PHP函数:PHP的通用检测函数总结
- Wince编程十大忠告
- MFC 中WM_消息处理对应的处理函数
- WM_ 对应的处理函数 MFC
- 系统安全的基本概念和权限控制系统的类型
- dom4j处理超大XML
- Web开发人员应当知道的15个开源项目
- nutch draft