关于linux下网络通信的一些问题

while(1){
等待连接
连接成功后将ip 端口保存到结构体数组中
建立线程去接受消息(将保存的数组中数据传送线程)
}
数据接受线程
{
将受到的数据保存到新的结构体数组中
str【i++】=受到的数据
}
但是同一个线程受到第二次数据时,这个i++又会执行,我想的是:假如第一个连接成功后收到数据一直保存到str【1】里面,第二个连接成功后,就一直存在str[2]里面

那就在线程里面建立connfd的映射关系,直接在线程里面进行数据读写操作。