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.
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
很抱歉,这里有英语
您好!
我使用 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次启动。 您能不能告诉我我发生了什么错误。 我需要能够无限期地建立和终止连接。 我一次不需要多个连接。 我所需要的只是一件事。 但我需要他能够在没有任何问题的情况下再次恢复。
示例代码: