基于LwIP socket的TCP客户端

前面介绍了UDP客户端与UDP服务器编写的基本流程,我们都知道UDP是无连接的,下面介绍一下基于连接的TCP的编写方法,首先介绍TCP客户端编写流程,其步骤如下所示

1、创建一个基于流的socket

2、设置服务器IP地址和端口号

3、连接设置好以后的socket和服务器地址

4、连接好以后就发送/接收数据


从以上几个步骤可以发现TCP和UDP的最主要区别就是TCP有一个建立连接的过程,而UDP是没有的,其源代码如下所示

#include 
#include 
#include 

#define	PORT		50000

char msg[] = "hello, you are connected!\n";

static void tcp_client_thread(void * arg)
{
	struct sockaddr_in server_addr;
	int sock_fd;
	
	sock_fd = socket(AF_INET, SOCK_STREAM, 0);
	if (sock_fd == -1) {
		Uart_Printf("failed to create sock_fd!\n");
		RAW_ASSERT(0);
	}
	
	raw_memset(&server_addr, 0, sizeof(server_addr));
	server_addr.sin_family = AF_INET;
	server_addr.sin_addr.s_addr = inet_addr("192.168.0.100");
	server_addr.sin_port = htons(PORT);
	
	connect(sock_fd, (struct sockaddr *)&server_addr, sizeof(struct sockaddr));

	while (1) {
		send(sock_fd, (char *)msg, sizeof(msg), 0);
		raw_sleep(100);
	}
	
//	close(sock_fd);
}


void tcp_client_init(void)
{
	sys_thread_new("tcp_client", tcp_client_thread, NULL, DEFAULT_THREAD_STACKSIZE, DEFAULT_THREAD_PRIO);
}


你可能感兴趣的:(LwIP)