没有合适的资源?快使用搜索试试~ 我知道了~
Linux下基于TCP/IP协议的文件传输
需积分: 15 18 下载量 130 浏览量
2014-04-28
13:41:53
上传
评论 2
收藏 4KB TXT 举报
温馨提示
试读
6页
通过Linux C编程,设计一个基于TCP/IP的文件传输系统,实现服务器端和客户端之间网络文件的收发。
资源推荐
资源详情
资源评论
/*****************************************
*TCP服务器端步骤:
*创建套接字 socket()
*绑定套接字 bind() ------> listen()
*设置套接字为监听模式,进入被动接受连接请求状态
*接受请求,建立连接 recv()
读写数据 send()
*终止连接 close()
******************************************/
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <time.h>
#define SERVPORT 8000
#define BUFSIZE 1000
void tim_now(void)
{
time_t now;
struct tm *timenow;
time(&now);
timenow=localtime(&now);
printf("%s\n",asctime(timenow));
}
int main (int argc, char *argv[])
{ int ret,on;
int s;
int fd;
int len;
*TCP服务器端步骤:
*创建套接字 socket()
*绑定套接字 bind() ------> listen()
*设置套接字为监听模式,进入被动接受连接请求状态
*接受请求,建立连接 recv()
读写数据 send()
*终止连接 close()
******************************************/
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <time.h>
#define SERVPORT 8000
#define BUFSIZE 1000
void tim_now(void)
{
time_t now;
struct tm *timenow;
time(&now);
timenow=localtime(&now);
printf("%s\n",asctime(timenow));
}
int main (int argc, char *argv[])
{ int ret,on;
int s;
int fd;
int len;
struct sockaddr_in my_addr;
struct sockaddr_in remote_addr;
int sin_size;
char buf[BUFSIZE],sent_buf[BUFSIZE];
memset (&my_addr, 0, sizeof (my_addr));
my_addr.sin_family = AF_INET; my_addr.sin_addr.s_addr = INADDR_ANY;
my_addr.sin_port = htons (SERVPORT );
on=1;
ret=setsockopt(s,SOL_SOCKET,SO_REUSEADDR,&on,sizeof(on) ); if ((s = socket (PF_INET, SOCK_STREAM, 0)) ==-1 )
{
perror ("socket");
exit(1);
}
if ((ret=bind (s, (struct sockaddr *) &my_addr, sizeof (struct sockaddr))) ==-1 )
{
perror ("bind");
exit(1);
}
listen (s, 5);
printf("listen...\n");
sin_size = sizeof (struct sockaddr_in);
if ((fd = accept (s, (struct sockaddr *) &remote_addr, &sin_size)) ==-1)
{
perror ("accept");
exit(1);
}
printf ("accept client %s\n", inet_ntoa (remote_addr.sin_addr));
tim_now();
len = send (fd, "Welcome to chat room\n", 21, 0);
while ((len = recv (fd, buf, BUFSIZE, 0)) > 0)
struct sockaddr_in remote_addr;
int sin_size;
char buf[BUFSIZE],sent_buf[BUFSIZE];
memset (&my_addr, 0, sizeof (my_addr));
my_addr.sin_family = AF_INET; my_addr.sin_addr.s_addr = INADDR_ANY;
my_addr.sin_port = htons (SERVPORT );
on=1;
ret=setsockopt(s,SOL_SOCKET,SO_REUSEADDR,&on,sizeof(on) ); if ((s = socket (PF_INET, SOCK_STREAM, 0)) ==-1 )
{
perror ("socket");
exit(1);
}
if ((ret=bind (s, (struct sockaddr *) &my_addr, sizeof (struct sockaddr))) ==-1 )
{
perror ("bind");
exit(1);
}
listen (s, 5);
printf("listen...\n");
sin_size = sizeof (struct sockaddr_in);
if ((fd = accept (s, (struct sockaddr *) &remote_addr, &sin_size)) ==-1)
{
perror ("accept");
exit(1);
}
printf ("accept client %s\n", inet_ntoa (remote_addr.sin_addr));
tim_now();
len = send (fd, "Welcome to chat room\n", 21, 0);
while ((len = recv (fd, buf, BUFSIZE, 0)) > 0)
剩余5页未读,继续阅读
资源评论
小蛋0103
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功