TCP/IP编程——多线程互斥TCP视频传输

前沿:

        我在《TCP/IP编程——多线程+非阻塞的服务实现》有提到创建多线程的函数是_beginthreadex(),但是其实它是调用了windows直接与内核操作的接口CreateThread(),下面我们就来看看这两个有说明不同。

补充:

_beginthreadex()函数与CreateThread()函数的区别。

        _beginthreadex()最终还是会调用CreateThread()

        但是windows用_beginthreadex()封装之后,安全性更高,因为这样就避免了多个线程调用标准C运行库的时候对用一个全局变量操作导致代码错误运行的问题,——每个线程都将拥有自己专用的一块内存区域来供标准C运行库中所有有需要的函数使用。而且这块内存区域的创建就是由C/C++运行库函数_beginthreadex()来负责的。

VS中的问题:无法从“const char [4]”转换为“LPCWSTR”

复制过来的代码经常容易发生这种错误,貌似是因为编码方式的不同导致的错误,需要在赋值的时候在双引号前加L

但是最好的做法是以后在程序里用_T("string");对LPCWSTR的变量赋值。

正文:

        我们在《TCP/IP编程——多线程+非阻塞的服务实现》虽然讲了多线程,但是线程之间是独立的,但是一般我们总会遇到种种的线程之间的关系,所以衍生出了多种多样的防止出错的线程协调的方法,今天我们来讲讲如何对文件进行操作最后利用TCP收发同时在服务器端多线程同步调度,完成TCPIP的第二份作业。

1. 编写TCP服务器,接收远程客户端发送的数据(视频文件);
2. 接收线程将接收到的数据存入缓存区;
3. 另一线程从缓存区中取出数据存入文件,保证线程之间的同步;
4. 要保证存入文件后打开可以正常播放视频文件;
5. 如能实现直接播放视频(加分)。

如何操作文件:

详情请参考网上的说明——C/C++ 文件设备操作之CreateFile、ReadFile和WriteFile / 使用CreateFile读写文件 /,这里只给出demo

writefile的demo

#include <stdio.h>
#include <windows.h>
int main()
{
	HANDLE hFILE = CreateF
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值