TC/UDPP网络编程

来源:互联网 发布:数控车床攻丝 编程 编辑:程序博客网 时间:2024/04/30 05:44

TC/UDPP网络编程 
 

练习:文件传输的功能
 首先一个函数
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

0 0
原创粉丝点击