This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TCP 客户端 TI - RTOS 或 FreeRTOS

Guru**** 2229435 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1024230/tcp-client-ti---rtos-or-freertos

Thread 中讨论的其他器件:SYSBIOS

Ahoj、
používám SADU MSP EXP432E401Y A tirtos_builds_MSP_EXP432E401Y_RELEASE_CCS_4_20_00_12
Příklad tcpecho_MSP_EXP432E401Y_tirtos_ccs nevykazuje žádný problem. Upravil jsem to Tak、aby periodicky navazoval tcp spojení jako tcp klient a zase to ukončil。 A Po deseti připojeních A ukončeních mělo být navázáno další spojení。 *** lSocket =套接字(AF_iNet、SOCK_STREAM、IPPROTO_TCP);KDE lSocket =-1。
Po chvíli bylo možné připojení obovit a ukončit、spuštění pouze 10。 Můžete mi prosím poradit、co dělám špatně。 Potřebuji mít možnost navázat A ukončit připojení na neurčito。 Nepotřebuji více připojení najednou。 Vše á, co potřebuji á, je jedna věc á. potřebuji ó n、aby se jejím dokončení dokázal ó n bez problémů znovu obovit。
ukázkový kód:

#include
#include
#include

#include
#include
#include
/* BSD 支持*/
#include
#include
#include
#include
#include
//#include

#include

#include

#define TCPPACKETSIZE 256
#define NUMTCPWORKERS 3.
#define MAXPORTLEN 6.

extern Display_Handle 显示;

extern unsigned char 计数;

extern void fdOpenSession();
extern void fdCloseSession();
extern void *TaskSelf();

extern uint32_t inet_addr (const char *);

/*
*==== tcpHandler ====
*创建新任务以处理新的 TCP 连接。
*
void *tcpHandler (void *arg0)


int lSocket =-1;

struct saddr_in sLocalAddr;
INT 状态;

while (1){

fdOpenSession (TaskSelf());

display_printf (display、0、0、"TCP CLI Echo example started %u\n"、(count+1));
lSocket = socket (AF_iNet、SOCK_STREAM、IPPROTO_TCP);
if (lSocket < 0){
display_printf (display、0、0、"tcpHandler:socket 失败(%d)\n"lSocket);
计数= 0;
转至插座;
}否则{
count++;
display_printf (display、0、0、"%d socket Success \n"、lSocket);

memset ((char *)&sLocalAddr、0、sizeof (sLocalAddr));
sLocalAddr.Sin_Family = AF_iNet;
// sLocalAddr.Sin_len = sizeof (sLocalAddr);
sLocalAddr.Sin_addr.s_addr = inet_addr ("192.168.1.42");计算机的/IP
sLocalAddr.Sin_port = htons (1000);//arg0);

if (status = connect (lSocket、(struct socaddr *)& sLocalAddr、sizeof (sLocalAddr))<0){
display_printf (display、0、0、"(%d;%d)未连接\ n"、lSocket、status);
počet = 0;

}否则{
display_printf (display、0、0、"(%d) connected \ n"、stav);

Task_sleep (3000);

插座:
状态=关闭(lSocket);
display_printf (display、0、0、"(%d) disconnected SOC \ n"、status);

Task_sleep (1000);


fdCloseSession (TaskSelf ());

返回(空);

Děkuji za Radu

Mirek

e2e.ti.com/.../3000.tcpEcho.c

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉,这里有英语
    您好!
    我使用 MSP EXP432E401Y 和 tirtos_builds_MSP_EXP432E401Y_RELEASE_CCS_4_20_00_12
    示例 tcpecho_MSP_EXP432E401Y_tirtos_ccs 显示没有问题。 我对其进行了修改、使其定期作为 TCP 客户端建立 TCP 连接、并再次终止连接。 在十个连接和终端后、将建立另一个连接。 函数 lSocket = socket (AF_iNet、SOCK_STREAM、IPPROTO_TCP);其中 lSocket =-1。
    一段时间后、可以重新建立并关闭连接、但只有10次启动。 您能不能告诉我我发生了什么错误。 我需要能够无限期地建立和终止连接。 我一次不需要多个连接。 我所需要的只是一件事。 但我需要他能够在没有任何问题的情况下再次恢复。
    示例代码: