当前位置: 技术问答>linux和unix
关于linux socket 客户端编程
来源: 互联网 发布时间:2016-11-11
本文导语: 面向连接的TCP时建立连接的过程大致是1客户端connect服务器端2服务器不断监听端口(listen)3服务器端accept建立连接。目前的问题主要是客户端如何知道服务器端地址?当然了如果我知道服务器的ip地址和相应的端口我...
面向连接的TCP时建立连接的过程大致是1客户端connect服务器端2服务器不断监听端口(listen)3服务器端accept建立连接。目前的问题主要是客户端如何知道服务器端地址?当然了如果我知道服务器的ip地址和相应的端口我就可以进行connect。但是看apue时,发现并不是直接设定远端服务器的sockaddr,而是通过getaddrinfo来获取的。问题来了,在客户端通过getaddrinfo是否可以获取当前主机上所有的注册过的远端服务的信息?如果是初次尝试连接呢?通过getaddrinfo如何获取远端主机ip和端口?
|
getaddrinfo() 的第一个参数就是一个IP地址或主机名称
客户端调用时可以指定主机名称,getaddrinfo() 就可以返回其对应的地址
客户端调用时可以指定主机名称,getaddrinfo() 就可以返回其对应的地址
|
getaddrinfo 就是获取服务端地址的函数,如果第一次的话,自然有dns来解析