1 端口号 ip地址转换
server_sockaddr.sin_port = htons(5001);
server_sockaddr.sin_addr.s_addr = inet_addr(“192.168.1.120”);

2 accept
注意
struct sockaddr_in client_addr; //创建一个变量,清零,不用赋值
socklen_t length = sizeof(client_addr);// 再得到它的长度
然后
int newsocket = accept(server_sockfd, (struct sockaddr*)&client_addr, &length);
就好。
3 accept是阻塞函数
listen 单纯的创建一个监听的“器件”,进行监听。

4 server socket 绑定ip尽量用
server_sockaddr.sin_addr.s_addr = htonl(INADDR_ANY);
自动获取地址
注意:为什么一般情况下都用serv.sin_addr.s_addr=htonl(INADDR_ANY)

比如你的机器有三个ip
192.168.1.1
202.202.202.202
61.1.2.3

如果你serv.sin_addr.s_addr=inet_addr(“192.168.1.1”);

然后监听100端口

这时其他机器只有connect 192.168.1.1:100端口才能成功。
connect 202.202.202.202:100和connect 61.1.2.3:100都会失败。

如果serv.sin_addr.s_addr=htonl(INADDR_ANY); 的话,无论连接哪个ip都可以连上的,这就是为什么这样选择的理由