当前位置: 技术问答>linux和unix
不同Ip 绑定同一端口 ,设置过SO_REUSEADDR选项 仍然出现address already in use 错误,求教大神指点,新人做服务器开发
来源: 互联网 发布时间:2017-05-29
本文导语: 本文用四个线程绑定四个Ip到同一端口,调用过set_sock_opt();仍然有错误,只能启动第一个,后面三个错误,通过netstat命令发现此端口ip为0.0.0.0 ,通过打印信息发现我的ip确实传进去了,而且我只运行一个ip测试,...
本文用四个线程绑定四个Ip到同一端口,调用过set_sock_opt();仍然有错误,只能启动第一个,后面三个错误,通过netstat命令发现此端口ip为0.0.0.0 ,通过打印信息发现我的ip确实传进去了,而且我只运行一个ip测试,绑定是成功的,服务器启动了,可以正常和客户端通讯,求教高人指点,谢谢了,新手做服务器开发。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const char* ip_table[] = {"192.168.26.132","192.168.1.10","192.168.1.12","127.0.0.1"};
void* thread_function(void* servip)
{
struct sockaddr_in servaddr,remote;
int request_sock,nsock;
int fd_num;
int maxfd,fd;
int ret;
uint32_t addlen;
fd_set set,reset;
struct timeval timeout;
int opt = 1;
char buf[128] = {''};
request_sock = socket(AF_INET,SOCK_STREAM,0);
if(request_sock
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define NUM_THREADS 4
const char* ip_table[] = {"192.168.26.132","192.168.1.10","192.168.1.12","127.0.0.1"};
void* thread_function(void* servip)
{
struct sockaddr_in servaddr,remote;
int request_sock,nsock;
int fd_num;
int maxfd,fd;
int ret;
uint32_t addlen;
fd_set set,reset;
struct timeval timeout;
int opt = 1;
char buf[128] = {''};
request_sock = socket(AF_INET,SOCK_STREAM,0);
if(request_sock