码迷,mamicode.com
首页 > 其他好文 > 详细

TC/UDPP网络编程

时间:2014-11-08 16:49:47      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:网络编程   c语言   linux   socket   

练习:文件传输的功能
首先一个函数
int ftruncate(int fd,off_t length)
功能:将fd指定的文件大小改为参数length指定大小
注:fd必须是以写入的模式打开。
参数:fd             为已经打开文件的文件描述符

     length     为文件指定大小

返回值:成功返回0,失败返回-1.
client 传文件给 server 
typedef struct 
{
int size;r buf[1024];
cha
}MSG;
客户端:
第一次 发送文件名,文件大小 
MSG msg;
msg.size = file_size;
strcpy(msg.buf, "文件名");
send(sockfd,&msg,sizeof(MSG))
下一次 发送数据 
msg.size = read(fd,msg.buf,sizeof(msg.buf));
send(sockfd,&msg,sizeof(MSG))
UDP收发数据函数
ssize_t recvfrom(int sockfd,void *buf,size_t len,int flags,struct sockaddr *src_addr,socklen_t *addrlen)
功能:接收数据
参数:
sockfd 创建的套接字
buf    接收数据存放的地址
len 期望接收数据的大小
flags  0
src_addr 获得发送方的地址
addrlen 值结果参数(使用之前必须初始化,初始化的大小就是struct sockaddr 大小)
返回值:
成功返回接到到的字节数,失败返回-1
ssize_t  sendto(int sockfd,void *buf,size_t len,int flags,const struct sockaddr *dest_addr,socklen_t addrlen )
功能:发送数据
参数:
sockfd 得到的套接字
buf    发送的数据存放的地址
len 期望发送数据的大小
flags  0
dest_addr 目标主机的地址
addrlen 地址的大小(sockaddr 结构体大小)
返回值:成功返回接收到的套接字,失败返回-1

TC/UDPP网络编程

标签:网络编程   c语言   linux   socket   

原文地址:http://blog.csdn.net/u011046042/article/details/40921089

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!