关于网络编程,服务器客户端bind error: Address already in use的问题:
原因:
1.你用了端口号,而进程没退出。
2.结束进程时:
crtl +c 和 crtl +z 是有区别的,前者结束进程 ,后者挂起进程
你使用后者的话,就会导致进程挂起 没杀死
解决方法:
1.杀死进程
ps -aue 查看pid ,然后kill +进程pid ,杀死进程
2.换端口号
3.等半分钟,等它端口释放
4.外部传参
外部传入端口号 直接更改新的端口号 比2方便
5 使用setsockopt()函数,取消端口号绑定限制
int on=1;
setsockopt(fd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof(on));
setsockopt(fd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof(on));