成品app直播源码,服务端与客户端传输视频文件相关的代码
Server端

#define WIN32_LEAN_AND_MEAN
#define _WINSOCK_DEPRECATED_NO_WARNINGS#include<windows.h>
#include<WinSock2.h>
#include<stdio.h>
#include <malloc.h>#pragma comment(lib,"ws2_32.lib")int main()
{//启动Windows socket 2.x环境WORD ver = MAKEWORD(2, 2);WSADATA dat;WSAStartup(ver, &dat);//------------//-- 用Socket API建立简易TCP服务端// 1 建立一个socket 套接字SOCKET _sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);// 2 bind 绑定用于接受客户端连接的网络端口sockaddr_in _sin = {};_sin.sin_family = AF_INET;_sin.sin_port = htons(4567);//host to net unsigned short_sin.sin_addr.S_un.S_addr = INADDR_ANY;//inet_addr("127.0.0.1");if (SOCKET_ERROR == bind(_sock, (sockaddr*)&_sin, sizeof(_sin))){printf("错误,绑定网络端口失败...\n");}else {printf("绑定网络端口成功...\n");}// 3 listen 监听网络端口if (SOCKET_ERROR == listen(_sock, 5)){printf("错误,监听网络端口失败...\n");}else {printf("监听网络端口成功...\n");}// 4 accept 等待接受客户端连接sockaddr_in clientAddr = {};int nAddrLen = sizeof(sockaddr_in);SOCKET _cSock = INVALID_SOCKET;char msgBuf[] = "Hello, I'm Server.";while (true){_cSock = accept(_sock, (sockaddr*)&clientAddr, &nAddrLen);if (INVALID_SOCKET == _cSock){printf("错误,接受到无效客户端SOCKET...\n");}printf("新客户端加入:IP = %s \n", inet_ntoa(clientAddr.sin_addr));// 5 send 向客户端发送一条数据FILE *fp1 = NULL; //指向源文件char *byBuff = NULL; //缓存int fileBytes = 0; //文件大小const char* pSrc = "Src.mp4";if ((fp1 = fopen(pSrc, "rb")) != NULL){fseek(fp1, 0L, 2);//将文件指针移动到文件末尾size_t size = ftell(fp1);//计算文件大小printf("文件大小%d \n", size);byBuff = (char*)malloc(size);//动态分配一块空间来存储读到的数据fseek(fp1, 0L, 0);//将文件指针移动到文件头部fileBytes = fread(byBuff, 1, size, fp1);send(_cSock, byBuff, size, 0);memset(byBuff, 0, sizeof(byBuff));//存储区清空fclose(fp1);}}// 6 关闭套节字closesocketclosesocket(_sock);//------------//清除Windows socket环境WSACleanup();return 0;
}

Client端

#define WIN32_LEAN_AND_MEAN#include<windows.h>
#include<WinSock2.h>
#include<stdio.h>
#include<malloc.h>#pragma comment(lib,"ws2_32.lib")int main()
{//启动Windows socket 2.x环境WORD ver = MAKEWORD(2, 2);WSADATA dat;WSAStartup(ver, &dat);//------------//-- 用Socket API建立简易TCP客户端// 1 建立一个socketSOCKET _sock = socket(AF_INET, SOCK_STREAM, 0);if (INVALID_SOCKET == _sock){printf("错误,建立Socket失败...\n");}else {printf("建立Socket成功...\n");}// 2 连接服务器 connectsockaddr_in _sin = {};_sin.sin_family = AF_INET;_sin.sin_port = htons(4567);_sin.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");int ret = connect(_sock, (sockaddr*)&_sin, sizeof(sockaddr_in));if (SOCKET_ERROR == ret){printf("错误,连接服务器失败...\n");}else {printf("连接服务器成功...\n");}// 3 接收服务器信息 recvFILE *fp1 = NULL; //指向源文件const char* pDest = "Dest.MP4";char *byBuff = NULL; //缓存byBuff = (char*)malloc(691767);//动态分配一块空间来存储读到的数据int nlen = recv(_sock, byBuff, 691767, 0);if ((fp1 = fopen(pDest, "ab+")) != NULL){fwrite(byBuff, 691767, 1, fp1);//从数据存储区向外读数据memset(byBuff, 0, sizeof(byBuff));//存储区清空fclose(fp1);}if (nlen > 0){printf("接收到数据\n");}// 4 关闭套节字closesocketclosesocket(_sock);//清除Windows socket环境WSACleanup();getchar();return 0;
}

以上就是成品app直播源码,服务端与客户端传输视频文件相关的代码, 更多内容欢迎关注之后的文章

成品app直播源码,服务端与客户端传输视频文件相关推荐

  1. 【开源项目】Socket服务端与客户端传输视频文件

    TCP Server端 #define WIN32_LEAN_AND_MEAN #define _WINSOCK_DEPRECATED_NO_WARNINGS#include<windows.h ...

  2. 成品app直播源码,iOS键盘弹出遮挡输入框

    成品app直播源码,iOS键盘弹出遮挡输入框解决的相关代码 self.phoneInput = [UITextField new];self.phoneInput.placeholder = @&qu ...

  3. 成品app直播源码中Android酷炫礼物动画实现方案(上篇)

    成品app直播源码中Android酷炫礼物动画实现方案(上篇) +在当下移动直播火爆的年代,如果你曾经使用过移动端直播应用,相信会被里面那令人惊叹的礼物动画效果迷住,比如像下面这样的效果. 从开发人员 ...

  4. 成品app直播源码,java编写字母顺序矩阵

    成品app直播源码,java编写字母顺序矩阵实现的相关代码 import java.util.Scanner; public class GetLetterArray {public static v ...

  5. 这样的成品app直播源码到手一定会后悔

    以前还是学生的时候,师哥告诉我说没有自己产品的公司不要进,纯外包的公司不要进,当时年轻气盛不觉得有什么不好,甚至觉得在高强度流水化作业的状态下更能锻炼人,后来真正入职以后才追悔莫及,一年后离职,再找工 ...

  6. 成品app直播源码,设置图片圆角和圆形图片

    成品app直播源码,设置图片圆角和圆形图片 在项目根目录下的build.gradle文件中,增加gradle地址: allprojects {repositories {google()jcenter ...

  7. 成品app直播源码,全屏并且去掉底部虚拟导航栏

    成品app直播源码,全屏并且去掉底部虚拟导航栏 @Overridepublic void onWindowFocusChanged(boolean hasFocus) {super.onWindowF ...

  8. 成品app直播源码,Android防止多次点击

    成品app直播源码,Android防止多次点击 /*** 最后一次点击时间map*/ private static Map<String, Long> lastClickTimeMap;p ...

  9. 云豹app直播源码Android 端获取相册图片功能的具体实现教程

    app直播源码开发时,关于动态功能的实现,通常采用类似于朋友圈式图文+视频模式,这就需要通过访问手机相册获取用户图片进行下一步操作,接下来就请跟随小编一起,从app直播源码角度探究云豹直播系统在这个功 ...

最新文章

  1. UA MATH571A 一元线性回归II 统计推断2
  2. wxWidgets:wxPlatformInfo类用法
  3. c语言中读取内存的文件,c++从内存中读取文件内容,内容写到内存 实现文件的内存共享代码实例...
  4. Unity 网络编程(Socket)应用
  5. [转]Android中pendingIntent的深入理解
  6. 第一类第二类丢失更新
  7. HPC高性能运算的发展应用场景以及高性能计算技术总结
  8. java中Jackson_在Java中使用Jackson的JSON模式支持?
  9. flex弹性盒子的兼容性写法
  10. php diff 文本比较,php文本操作方法集合比较
  11. 游戏音效下载网站大全
  12. 全国航空机场分布矢量数据/旅游景点poi/全国港口码头分布/地铁站分布/火车站分布/2020年POI矢量数据
  13. 2019最新《web前端课程+项目实践课程》高清无拼凑
  14. CF 1715 D. 2+ doors 位运算 1900
  15. Aspose.Slides使用教程:使用 C++ 访问或修改 PowerPoint 文件的属性
  16. 树莓派安装图形化桌面系统及SD卡恢复方法
  17. Windows nginx 操作和配置
  18. winform panel透明化,鼠标移动会闪烁
  19. nitro库_Nitro的故事,专业的翻译服务,可帮助开发人员进行本地化和多语言支持...
  20. GJB6600-装备交互式电子技术手册

热门文章

  1. 结构体嵌套结构体,及其的初始化
  2. 伟景行citymaker-----01.javascript打开本地模型CEP,加载目录树,加载要素类
  3. matlab多元变量最优解,模拟退火算法确定多个变量的最优解
  4. 【思路整理】凑数问题
  5. 让你实现财富自由,从此不再缺资金
  6. sns.regplot 和 sns.distplot你知道多少
  7. 5分钟带你看懂区块链浏览器
  8. 华为云主机怎么样?华为云弹性云服务器有什么优势?
  9. 【Linux】资源查看top显示信息说明|top、iftop、iotop、htop、atop工具
  10. Android常用五大平台上架详解