TC/UDPP网络编程
练习:文件传输功能
首先是一个函数
intftruncate(intFD,off_t length ) )。
功能:将软盘指定的文件大小更改为参数length指定的大小
注:软盘必须以刻录模式打开。
参数:软盘是打开文件的文件描述符
length指定文件的大小
返回值: 0,失败返回-1。
客户端将文件发送到服务器
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收发数据函数
size_trecvfrom(intsockfd,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
size_tsendto(intsockfd,void *buf,size_t len,int flags,const struct sockaddr *dest_addr,socklen_t addrlen
功能:发送数据
参数:
sockfd得到的套接字
buf发送的数据的保存地址
len要发送的数据的大小
flags 0
dest_addr目标主机的地址
地址的大小(sockaddr结构大小) )。
返回值:成功返回接收到的套接字,-1失败