tcp视频传输-客户端

#include<winsock2.h>
#include<iostream>
#include<fstream>
#include<string>
//#include<stdio.h>

#define DATA_BUFFER  512  //发送缓存大小

using namespace std;

int main()
{

  WSADATA wsaData;
  SOCKET sClient;
  int i=0;

  //发送的数据长度
  int isndLen;

  //发送缓冲区
  char sndbuf[DATA_BUFFER];
  //发送缓存初始化
  memset(sndbuf,0,DATA_BUFFER);

  char *Serip="10.25.162.181";//随着程序所在主机的地址改变而改变
  int SeriPort=5050;

  //服务器端SOCKET地址结构
  struct sockaddr_in serAddr;
  //填写要连接的服务器地址信息
  serAddr.sin_family=AF_INET;
  serAddr.sin_port=htons(SeriPort);
  serAddr.sin_addr.s_addr=inet_addr(Serip);


  if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)
  {
   cout<<"failed to load winsock"<<endl;
   return 0;
  }


  //建立客户端字节流式套接字(TCP套接字)
  sClient=socket(AF_INET,SOCK_STREAM,0);
  if(sClient==INVALID_SOCKET)
  {
    cout<<"socket() failed :"<<WSAGetLastError()<<endl;
    return 0;
  }
  string a;
  fstream str; 
  str.open("姚静.avi",ios::binary|ios::in);
  //请求与服务器建立连接
  // cout<<"set link";
  if(connect(sClient,(struct sockaddr *)&serAddr,sizeof(serAddr))==INVALID_SOCKET)
  {
    cout<<"connect() failed: "<<WSAGetLastError()<<endl;
    return 0;
  } 
  
  else
  {//向服务器端发送数据
	  while(1)
	  {
		 cout<<endl;
		 i++;
		 cout<<"第"<<i<<"发送"<<endl;
		 while(getline(str,a)) {
			 cout<<a<<endl;
			 isndLen=send(sClient,a.data(),sizeof(a),0);
			 break;
			 if(isndLen==0)
				return 0;
			 else if(isndLen==SOCKET_ERROR)
			 {
				cout<<"send() failed:"<<WSAGetLastError()<<endl;
				return 0;
			 }
	     }
		 cout<<a<<"hh"<<endl;
	 }

  }

  closesocket(sClient);

  WSACleanup();
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值