无名Socket在第二章做了介绍,主要是用于父子进程间通信,创建方法是调用socketpair函数。
绑定IP地址其实就是给Socket命名。
具体实现是通过bind函数。
#include <sys/types.h>
#include <sys/socket.h>
int bind(int sockfd, struct sockaddr *my_addr, int addrlen);
my_addr的初始化方法请参考第三章。
通常使用方法如下:
int sck_inet; /* Socket */
struct sockaddr_in adr_inet;/* AF_INET */
int len_inet; /* length */
sck_inet = socket(AF_INET,SOCK_STREAM,0);
if ( sck_inet == -1 ) return err; // 错误处理
memset(&adr_inet,0,sizeof adr_inet);
adr_inet.sin_family = AF_INET;
adr_inet.sin_port = htons(9000); // Port号
inet_aton("127.0.0.24",&adr_inet.sin_addr); // IP 地址
len_inet = sizeof(adr_inet);
z = bind(sck_inet,(struct sockaddr *)&adr_inet, len_inet);
if ( z == -1 ) return err; // 错误处理
接下来,书中介绍了如何通过socket id来获取地址信息。
#include <sys/socket.h>
int getsockname(int s, struct sockaddr *name, socklen_t *namelen)
由于是通用接口,获取信息后需要我们做类型强行转换。具体请阅读第二章。
一般对于AF_INET地址域,强行转化为sockaddr_in类型就可以了。
具体使用:
struct sockaddr_in adr_inet;/* AF_INET */
int len_inet; /* length */
len_inet = sizeof(adr_inet);
z = getsockname(s,(struct sockaddr *)&adr_inet, &len_inet);
// 打印IP地址与Port。相关函数说明请参考第三章。
snprintf(buf,bufsiz, "%s:%u",inet_ntoa(adr_inet.sin_addr), (unsigned)ntohs(adr_inet.sin_port));
利用getpeername函数获取socket远程端的地址信息。
#include <sys/socket.h>
int getpeername(int s, struct sockaddr *name, socklen_t *namelen);
使用方法和getsockname类似。
分享到:
相关推荐
Linux Socket Programming by Example 英文第二版,内有大量的实例代码,很好的教程……
实战Linux socket编程Linux Socket Programming By Example完整配套源代码,网上尚无完整的源代码。都已通过调试,特与大家分享!!!
Linux Socket Programming By Example
Linux Socket Programming By Example.pdf
Linux Socket Programming By Example
linux socket programming
Linux Socket Programming by Example.pdf Linux Socket Programming by Example.pdf
linux socket programming by example code
Linux Socket Programming by Example
linux socket tutorial
Consequently, a “by example” approach to socket programming is used here. Each chapter builds upon the previous, until all of the basic concepts are mastered in Part 1, “Basic Socket ...
linux socket编程的英文版教程,里面包含实例包
实战Linux Socket编程_2-1 Socket编程新手使用
linux-socket-select-异步聊天 linux-socket-select-异步聊天 linux-socket-select-异步聊天
Linux socket programming
Linux Socket Programming by Example Warren W.Gay QUE 出版社 比较深入的介绍了在类unix系统下进行socket网络编程的知识,并且包含了大量的应用实例 电子版,非扫描
linux centos7的perl-IO-Socket-IP-0.21-5.el7.noarch.rpm包