“这很不错啊”,你说,“但是你还没有讲无连接数据报套接字呢?” 没问题,现在我们开始这个内容。
既然数据报套接字不是连接到远程主机的,那么在我们发送一个包之前需要什么信息呢? 不错,是目标地址!
sendto()函数原型:
int sendto(intsockfd, const void *msg, int len, unsigned int flags,
const struct sockaddr *to, socklen_ttolen);
你已经看到了,除了另外的两个信息外,其余的和函数 send() 是一样的。 to 是个指向数据结构 struct sockaddr 的指针,它包含了目的地的IP 地址和端口信息。tolen 可以简单地设置为sizeof(struct sockaddr)。 和函数 send() 类似,sendto()返回实际发送的字节数(它也可能小于你想要发送的字节数!),或者在错误的时候返回-1。
recvfrom()函数原型:
int recvfrom(intsockfd, void *buf, int len, unsigned int flags,
struct sockaddr *from, int *fromlen);
又一次,除了两个增加的参数外,这个函数和 recv() 也是一样的。from 是一个指向局部数据结构 struct sockaddr 的指针,它的内容是源机器的IP 地址和端口信息。fromlen 是个 int 型的局部指针,它的初始值为 sizeof(struct sockaddr)。函数调用返回后,fromlen保存着实际储存在 from 中的地址的长度。
recvfrom() 返回收到的字节长度,或者在发生错误后返回 -1。
分享到:
相关推荐
Beej’s Guide to Network Programming
C程序员套接字编程指南。 它提供了同时支持IPv6和IPv4的简单客户端和服务器的完整示例。
### Beej's Guide to Network Programming Using Internet Sockets #### 知识点一:网络编程基础概念 - **网络编程**:是指开发能够通过网络(如互联网)与其他计算机进行通信的应用程序的技术。 - **互联网套接字...
### Beej's Guide to Network Programming – 使用互联网套接字 #### 一、介绍与受众定位 **《Beej's Guide to Network Programming》**是一部由Brian "Beej" Hall编写的经典网络编程指南,专注于互联网套接字的...
网络编程经典书,学C++的必看,英文原版
《Beej Guide to Network Programming》是一本深受Linux网络编程初学者欢迎的书籍,它以其易懂的语言和实用的示例深入浅出地介绍了网络编程的基础知识。这本书的中文完整版,"Beej Guide to Network Programming简体...
### Beej's Guide to Network Programming – 简体中文版 #### 1. 前言 本指南旨在为那些在网络编程方面遇到挑战的程序员提供一份实用且易于理解的资源。如果你正在寻找一种简单的方式去理解和掌握网络编程的核心...
### 网络编程书籍《Beej’s Guide to Network Programming》知识点解析 #### 一、书籍简介 《Beej’s Guide to Network Programming Using Internet Sockets》是一本由Brian "Beej" Hall编写的关于网络编程的经典...
标题《Beej's Guide to Network Programming.pdf》和描述《网络编程》揭示了本文档所涉及的主要领域为网络编程。网络编程是计算机程序或软件组件之间通过网络进行通信和数据交换的过程。网络编程的核心在于使用套接...
标题《Beej Guide for Network Programming》和描述中提及的《Beej's Guide to Network Programming Using Internet Sockets》表明,该文档是一份详细且易于理解的网络编程指南,尤其专注于使用C语言和Socket进行...
### Beej's Guide to Network Programming Using Internet Sockets #### 知识点概览 - **网络编程基础**:包括socket的概念及其在Linux环境下的应用。 - **数据结构与处理**:涉及网络编程中的数据结构(如`struct ...