"); //-->
char message[]= "hello rt-thread server!";
#define BUFSZ 1024
void tcpclient(void)
{
int ret;
char *recv_data;
struct hostent *host;
int sock,bytes_recived;
struct sockaddr_in server_addr;
char url[] = "192.168.1.45";
int port = 5000;
host = gethostbyname(url);
recv_data = rt_malloc(BUFSZ);
sock = socket(AF_INET, SOCK_STREAM, 0);
if(sock < 0)
{
rt_kprintf("sock create failed");
}
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(port);
server_addr.sin_addr = *((struct in_addr *)host->h_addr);
if(connect(sock,(struct sockaddr *)&server_addr,sizeof(struct sockaddr)) == -1)
{
rt_kprintf("connect fail !\n");
closesocket(sock);
return;
}
else
{
rt_kprintf("connect successful\n");
send(sock,message,sizeof(message),0);
}
while(1)
{
bytes_recived = recv(sock,recv_data,BUFSZ -1,0);
if(bytes_recived < 0)
{
closesocket(sock);
rt_kprintf("\nreceived error,close the socket.\r\n");
rt_free(recv_data);
break;
}
else if(bytes_recived == 0)
{
closesocket(sock);
rt_kprintf("\n received error,close the socket .\r\n");
rt_free(recv_data);
break;
}
recv_data[bytes_received] = '\0';
if(strncmp(recv_data,"q",1) == 0 || strncmp(recv_data,"Q",1))
{
closesocket(sock);
rt_kprintf("\n got a 'q' or 'Q',close the socket.\r\n“);
rt_free(recv_data);
break;
}
else
{
rt_kprintf("\n Received data = %s ",recv_data);
}
ret =send(sock, send_data, strlen(send_data), 0);
if(ret < 0)
{
closesocket(sock);
rt_kprintf("\n send error,close the socket.\r\n");
rt_free(recv_data);
break;
}
else if (ret == 0)
{
rt_kprintf("send warning ,send function return \r\n");
}
}
}专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
尼得科OKK将发售卧式5轴加工中心“HX500”
用CD4017组成1~17进制计数器之二
多路报警器电路
BQ3060:符合 SBS 1.1 的电量监测计和保护器
是的,英特尔应该私有
南芯科技车规PMIC家族再添新成员,发布ASIL-D功能安全等级的SBC
ZC-2-10A自动充电机电路
用CD4017和选择开关组成多进制计数器
Altium Designer概述 下
单电源运放图集
联发科天玑9500:旨在超越Snapdragon 8 Gen 3和苹果A17
Nvidia和Wayve谈论5亿美元投资
2025迎人形机器人量产拐点 兆易创新全栈芯片已就位
红外专用放大电路BISS0001微功耗芯片
[求助]uClibc怎么裁减阿?
用CD4017组成20进制计数器
用CD4017组成任意进制输出电路之一
ARM7控制的LCD
百套嵌入式资料及软件系统
Altium Designer概述 上
百套嵌入式资料及软件系统
LCD抗干扰
用于消费电子产品的ispMACH 4000ZE CPLD系列
用CD4017组成任意进制计数输出电路之二
晶体管放大器
TI DC/DC 转换器TPS54620 简单易用的负载点设计
2025 LoRa创新论坛圆满落幕,物联网新时代正式开启
为什么与台积电共创对日本企业来说是一个千载难逢的机会
减轻多小芯片系统中的翘曲
电路设计[FPGA]设计经验