- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
socket及使用方法报告
SOCKET
什么是SOCKET
socket是网络通信中用到的一种实体,可以将其理解为一种特殊的文件,在进行网络通信时,可以通过简单的对socket的操作来实现网络通信的目的。
Socket中的接口函数
Socket包含了很多对其进行基本操作的函数,简单列出其函数名及接口参数如下:
int accept(int s, struct sockaddr *addr, socklen_t *addrlen);
int bind(int s, struct sockaddr *name, socklen_t namelen);
int shutdown(int s, int how);
int getpeername (int s, struct sockaddr *name, socklen_t *namelen);
int getsockname (int s, struct sockaddr *name, socklen_t *namelen);
int getsockopt (int s, int level, int optname, void *optval, socklen_t *optlen);
int setsockopt (int s, int level, int optname, const void *optval, socklen_t optlen);
int close(int s);
int connect(int s, const struct sockaddr *name, socklen_t namelen);
int listen(int s, int backlog);
int recv(int s, void *mem, int len, unsigned int flags);
int read(int s, void *mem, int len);
int recvfrom(int s, void *mem, int len, unsigned int flags,
struct sockaddr *from, socklen_t *fromlen);
int send(int s, const void *dataptr, int size, unsigned int flags);
int sendto(int s, const void *dataptr, int size, unsigned int flags,
struct sockaddr *to, socklen_t tolen);
int socket(int domain, int type, int protocol);
int write(int s, const void *dataptr, int size);
int select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,
struct timeval *timeout);
int ioctl(int s, long cmd, void *argp);
Socket中函数具体使用
1 int socket(int domain, int type, int protocol);
socket(int domain, int type, int protocol)函数用来创建一个socket,其返回值为唯一描述该socket的描述符。参数含义如下:
1)int domain:即协议域,又称为协议族(family)。常用的协议族有,AF_INET、AF_INET6、AF_LOCAL(或称AF_UNIX,Unix域socket)、AF_ROUTE等等。协议族决定了socket的地址类型
2)int type:创建的socket类型,有流套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW)等类型,最常用的是流套接字,用来进行TCP传输
3)int protocol:指定使用的协议,如TCP协议,UDP协议等。
2 bind(int s, struct sockaddr *name, socklen_t namelen)
Bind()函数将一个地址赋给创建好的socket
1)Int s:需要赋地址的套接字描述符
2)struct sockaddr *name: 指向存放要赋给套接字的地址的结构体的指针
其中结构体sockaddr定义根据使用的协议不同而不同,其中IPv4对应结构体定义如下
struct sockaddr_in {
sa_family_t sin_family;
文档评论(0)