这实际上取决于您的程序的作用。
IPV6 地址需要 16 个字节,而不是 IPV4 使用的 4 个字节。字符串的表示形式也不同。
创建套接字几乎是相同的:
sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
Run Code Online (Sandbox Code Playgroud)
只需将 PF_INET 更改为 PF_INET6 即可。
连接有点不同:
nRet = connect(sock,
reinterpret_cast<SOCKADDR *>(&SockAddr),
sizeof(SockAddr));
Run Code Online (Sandbox Code Playgroud)
在IPV4中,SockAddr是一个sockaddr_in结构,在IPV6中它是一个sockaddr_in6。
您必须使用 getaddrinfo() 之类的东西来初始化 SockAddr,因为 gethostbyname() 不适用于 IPV6。
bind()、listen() 和accept() 更加相同。套接字一旦建立,读、写等就与IP版本无关。
如果您在更高级别(例如 HTTP)上工作,您的程序不需要任何更改,但它可能需要链接到不同的库。
| 归档时间: |
|
| 查看次数: |
880 次 |
| 最近记录: |