金牌会员
- 积分
- 1167
- 金钱
- 1167
- 注册时间
- 2020-7-27
- 在线时间
- 193 小时
|
本帖最后由 17737131231 于 2020-7-27 16:05 编辑
u8 tcp_client_recvbuf[TCP_CLIENT_RX_BUFSIZE]; //TCP客户端接收数据缓冲区
uint8_t tcp_client_sendbuf[]="ok";//TCP客户端发送数据缓冲区,返回client send data信号给上位机服务器
u8 tcp_client_flag; //TCP客户端数据发送标志位
//TCP客户端任务
#define TCPCLIENT_PRIO 8
//任务堆栈大小
#define TCPCLIENT_STK_SIZE 300
//任务堆栈
OS_STK TCPCLIENT_TASK_STK[TCPCLIENT_STK_SIZE];
//tcp客户端任务函数
static void tcp_client_thread(void *arg)
{
int fd;
struct sockaddr_in addr ;
ip_addr_t stIpAddr;
IP4_ADDR(&stIpAddr, lwipdev.remoteip[0],lwipdev.remoteip[1], lwipdev.remoteip[2],lwipdev.remoteip[3]);
while(1)
{
fd =socket(AF_INET,SOCK_STREAM,0); /* 使用TCP连接*/
addr.sin_family=AF_INET ; /* 服务器地址类型为IPV4 */
addr.sin_port=htons(8087); /* 服务器的端口号为8087 */
addr.sin_addr.s_addr=inet_addr("192.168.1.222"); /* 服务器的IP地址 */
memset(&(addr.sin_zero ),0,sizeof(addr.sin_zero));
if(connect(fd,(struct sockaddr *)&addr, sizeof(struct sockaddr))<0)
{
closesocket(fd);
return;
}
// if(iState>0)//处理新连接的数据
// {
while(1)
{
//if((tcp_client_flag & LWIP_SEND_DATA)==LWIP_SEND_DATA)//发送数据
write(fd,tcp_client_sendbuf,strlen((char*)tcp_client_sendbuf));
// if(statusOK>0)
// {
// statusOK=read(sock,tcp_client_recvbuf,sizeof(tcp_client_recvbuf));
// }
// else if(statusOK<=0)
// closesocket(sock);
}
}
//closesocket(sock);
}
//创建TCP客户端线程
//返回值:0 TCP客户端创建成功
// 其他 TCP客户端创建失败
INT8U tcp_client_init(void)
{
INT8U res;
OS_CPU_SR cpu_sr;
OS_ENTER_CRITICAL(); //关中断
res = OSTaskCreate(tcp_client_thread,(void*)0,(OS_STK*)&TCPCLIENT_TASK_STK[TCPCLIENT_STK_SIZE-1],TCPCLIENT_PRIO); //创建TCP客户端线程
OS_EXIT_CRITICAL(); //开中断
return res;
}
//////////////////////建立连接失败,是什么原因??????
|
|