Other Parts Discussed in Thread: SYSBIOS
DSP为C6748,C6748作为服务器,电脑作为客户端;
程序的功能很简单,电脑向C6748发送数据,C6748将接收到的数据回传;
使用NDK实现TCP传输,在TCP.c中,定义了一个全局的套接字TcpSocket和全局变量如下:
volatile UINT8 RecDataFlag=0; // 数据接收标志位,接收到上位机的数据时:置1;数据处理完:清0。
volatile UINT32 RecDataNum=0; // 接收到的数据的长度
char *RecDataBuf; // 接收到的数据的指针
HANDLE hBuffer;
SOCKET TcpSocket;// 全局套接字
在TCP.c的回调函数TcpTest(SOCKET s, UINT32 unused)中使用send(g_TcpSocket, RecDataBuf, RecDataNum, 0)函数,可以正常的向PC回传数据;我想知道如何将TcpTest(SOCKET s, UINT32 unused)回调函数的套接字s传给全局的套接字TcpSocket;我试过直接赋值如下
TcpTest(SOCKET s, UINT32 unused)
{
.............
TcpSocket=s;
............
}
//tcp_test_hhr_fun这个是另外一个线程,tcp_test_hhr这个是线程句柄
void tcp_test_hhr_fun(UArg arg)
{
char Title[] = {0x01,0x02,0x03,0x04,0x05,0x06,0x07};
fdOpenSession((HANDLE)tcp_test_hhr);
send(tcp_socket, &Title, 4, 0);
fdCloseSession((HANDLE)tcp_test_hhr);
}
我并不能在另外一个线程发送数据给客服端,我想请问套接字不能直接赋值吗?