c/c++语言开发共享c/c++ 网络编程 bind函数

网络编程 bind函数 bind的作用是确定端口号。 正常处理都是先bind,然后listen 如果不bind,直接listen,会是什么结果? 内核会自动随机分配一个端口号 例子: c++ include include include include include include void p …


网络编程 bind函数

bind的作用是确定端口号。

正常处理都是先bind,然后listen

如果不bind,直接listen,会是什么结果?

内核会自动随机分配一个端口号

例子:

#include <iostream> #include <sys/types.h> #include <sys/socket.h> #include <unistd.h> #include <arpa/inet.h> #include <netinet/in.h>  void print_ip_port(int sock){   char buf[48];   sockaddr_in s;   socklen_t sz;    sz = sizeof(s);    //取得socket里面的ip地址和端口号   if(getsockname(sock, (sockaddr*)&s, &sz) != 0){     perror("getsockname");     return;   }    //把bind的ip转化成字符串   inet_ntop(af_inet, &s.sin_addr, buf, sizeof(buf));   std::cout << buf << ":" << ntohs(s.sin_port) << std::endl; } int main(){   int s0, sock;   sockaddr_in peer;   socklen_t peerlen;   int n;   char buf[1024];    //socket创建成功后,马上就调用监听listen   s0 = socket(af_inet,sock_stream,0);   if(listen(s0, 5) != 0){     perror("listen");     return 1;   }    //打印出ip地址和端口号   print_ip_port(s0);    //等待客户端的连接   peerlen = sizeof(peer);   sock = accept(s0, (sockaddr*)&peer, &peerlen);   if(sock < 0){     perror("accept");     return 1;   }    write(sock, "hellon", 6);    close(s0);   close(sock);    } 

c/c++ 学习互助qq群:877684253

c/c++ 网络编程 bind函数

本人微信:xiaoshitou5854

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/607188.html

(0)
上一篇 2021年5月14日
下一篇 2021年5月14日

精彩推荐