TI中文支持网
TI专业的中文技术问题搜集分享网站

CC3200 TCP传输

    我遇到一个问题,想请教你一下, 

if (g_ucUARTBuffer[0]!=0)//串口的额数据{	// sending packet  Ibcon的数据	iStatus = sl_Send(iSockID1, g_ucUARTBuffer, sizeof(g_ucUARTBuffer), 0 );//发送TCP数据	if(iStatus<=0)	{		ASSERT_ON_ERROR(sl_Close(iSockID1));		ASSERT_ON_ERROR(TCP_CLIENT_FAILED);	}	memset(g_ucUARTBuffer, 0, sizeof(g_ucUARTBuffer));}	//接收来自服务器的TCP数据。iStatus = sl_Recv(iSockID1,g_cBsdbuf,sizeof(g_cBsdbuf),0);if(iStatus > 0){UART_PRINT("recv ok\n");UART_PRINT(">>>%s\r\n", g_cBsdbuf);}else{ASSERT_ON_ERROR(sl_Close(iSockID1));ASSERT_ON_ERROR(TCP_CLIENT_FAILED);}memset(g_cBsdbuf, 0, sizeof(g_cBsdbuf));
 单独的发送和接收都可以,当一起运行的时候,就会出现,当串口数据发送时候,服务器那边没有显示接收的数据,只有当服务器那边发送数据的时候,才会显示出从串口发过来的数据,这是为什么? 
有什么解决方法吗?
lei zhang14:

QQ445945370

dong zhang3:

回复 lei zhang14:

QQ:734679109

dong zhang3:

回复 lei zhang14:

能具体告知怎么解决吗?谢谢

yong zhang6:

 iStatus = sl_Recv(iSockID1,g_cBsdbuf,sizeof(g_cBsdbuf),0);这一句死等服务器发的数据,直到有数据发过来,才会执行下一句

dong zhang3:

回复 yong zhang6:

那我如何解决,这个问题???

dong zhang3:

回复 yong zhang6:

能具体一点吗?解决方法

dong zhang3:

回复 yong zhang6:

可是我是Sl_send()函数在前面,按理说应该先运行这个函数才对啊,和Sl-recv()死等没关系吧

dong zhang3:

回复 yong zhang6:

能具体一点解决方法吗?

Yonghua Pan:

回复 dong zhang3:

能否把SOCKET设置成为nonblocking再测试一下,或者给recv设置timeout.

Yonghua Pan:

回复 dong zhang3:

long nonBlocking = 1;

iStatus = sl_SetSockOpt(SockID, SL_SOL_SOCKET, SL_SO_NONBLOCKING, \&nonBlocking,sizeof(nonBlocking));

赞(0)
未经允许不得转载:TI中文支持网 » CC3200 TCP传输
分享到: 更多 (0)