STM32/STM8技术论坛
直播中

604607827

12年用户 6经验值
擅长:控制/MCU
私信 关注
[问答]

求助各位大神 如何实现TCP与两台PC机同时实现TCP连接

本人最近在做一个项目,STM32作为SERVER 主机PC作为Client 要实现 一块CPU与两台PC同时进行TCP连接(两台PC的IP地址是不同的) 以下是本人的初始化代码 但是没有用 搞了几天了 还是不能实现和两个IP进行连接
void TCP_Client_Init1(u16_t local_port,u16_t remote_port,u16_t remote_port1,unsigned char a,unsigned char b,unsigned char c,unsigned char d,unsigned char e,unsigned char f,unsigned char g,unsigned char h)
{
        struct ip_addr ipaddr,ipaddr_redun;
        err_t err,err1;
        IP4_ADDR(&ipaddr,a,b,c,d);           //主服务器IP地址
        IP4_ADDR(&ipaddr_redun,e,f,g,h);
        tcp_client_PCB = tcp_new(); /* 建立通信的TCP控制块(Clipcb) */
        tcp_client_pcb1 =  tcp_new();
        if ((!tcp_client_pcb)&&(!tcp_client_pcb1))
        {
                return ;
        }               
        err = tcp_bind(tcp_client_pcb,IP_ADDR_ANY,local_port); /* 绑定本地IP地址和端口号 ,本地ip地址在        LwIP_Init()中已经初始化*/
        err1 = tcp_bind(tcp_client_pcb1,IP_ADDR_ANY,local_port);
        if((err != ERR_OK)&&(err1 != ERR_OK))
        {
                return ;
        }   
       
        tcp_connect(tcp_client_pcb,&ipaddr_redun,remote_port1,TCP_Connected);
        tcp_recv(tcp_client_pcb1,TCP_Client_Recv);
       
        tcp_connect(tcp_client_pcb,&ipaddr,remote_port,TCP_Connected);//注册回调函数
        tcp_recv(tcp_client_pcb,TCP_Client_Recv);                                 /* 设置tcp接收回调函数 */
}

已退回2积分

回帖(2)

h1654155956.5608

2016-7-30 13:53:33
那要用两个不同的端口号吧。同一个端口号连接两台PC,只能采用组播,组播只能是UDP。
举报

何健飞

2016-8-2 14:55:32
你这个server的代码有问题吧?服务端的代码呢?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分