tcpclient icon indicating copy to clipboard operation
tcpclient copied to clipboard

基于多线程的非阻塞 socket 编程

Results 4 tcpclient issues
Sort by recently updated
recently updated
newest added

1. 关闭socket clinet时,两个thread线程也访问了这个handle,不安全。 2. 多线程的这种操作socket方式不建议

在tcpclient.c中,342行(pipe_buff[res] = '\0';)这句话,当res=BUFF_SIZE时,写操作会超出内存边界,导致(free(pipe_buff);)失败,报错内容(to free a bad data block: mem: 0x2001708c, used flag: 1, magic code: 0x1e00),需要屏蔽342行,第325行(sock_buff[res] = '\0';)也可能导致同样的问题。

多个线程同时往pipe中写入数据,而发送数据读取pipe中的数据进行发送,那是否存在多包数据粘包在一起发送的情况呢?

使用sal+dfs中的select ---------------------------------------------------------- 应用线程**主动**closesocket 时,select返回0,但select设置超时后也返回0,这两者怎么区分? (ps:closesocket 过N久后,select也会返回1,表示一个可读事件,读取recv返回0,表示断开) 使用lwip中的select(即关闭sal和dfs组件) ---------------------------------------------------------- 应用线程**主动**closesocket 时,select返回1,代表有一个可读事件,读取recv返回0,表示断开。