socket的VC++实现

       服务器端与客户端区别 :

       摘自http://topic.csdn.net/u/20070124/10/9cf2284c-1cbf-4187-b309-8e5f0bea6f33.html的一段话

       客户端程序和服务器端程序通常是多对一的关系,
       即一个服务器端程序,面向众多客户端提供数据服务。 

       程序看具体情况,才能确定是否分两部分来写。
          1.网站:只写服务端,浏览器就是客户端程序了,不用再写,这就是   B/S   结构的优势,部署、更新容易
          2.类似QQ、网游的:两边都要写,这就是为什么你自己下载   QQ   升级的原因        

       FPGA 与 PC谁是客户谁是服务呢,首先是一对一,没有应用程序,还谈不少客户与服务吧,只是接收和发送的关系吧。

 

 附录经过测试的程序,测试环境为VC++6.0

#include <stdio.h>
#include <Winsock2.h>
#pragma comment(lib, "ws2_32.lib")
void main(void)
{
    WSADATA wsaData;
    int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
    if(iResult != NO_ERROR)
        printf("Error at WSAStartup()\n");
 FILE *fp;
 fp=fopen("jpeg.FPGA","wb");
 SOCKET socket1;
 struct sockaddr_in local;
 struct sockaddr_in from;
 int fromlen =sizeof(from);
 local.sin_family=AF_INET;
 local.sin_port=htons(1024); ///监听端口
 local.sin_addr.s_addr=inet_addr("192.168.1.216"); ///本机

 socket1=socket(AF_INET,SOCK_DGRAM,0);//创建socket AF_INET代表TCP IP协议族  SOCK_DGRAM代表UDP O  为o
 bind(socket1,(struct sockaddr*)&local,sizeof local);//对端口进行监听
 while (1)
 {
  char buffer[1024]="\0";
  printf("waiting for message from others-------------\n");
  if (recvfrom(socket1,buffer,sizeof buffer,0,(struct sockaddr*)&from,&fromlen)!=SOCKET_ERROR)//接收数据
  {
   printf("Received datagram from %s--%s\n",inet_ntoa(from.sin_addr),buffer);
   fprintf(fp,"Received datagram from %s--%s\n",inet_ntoa(from.sin_addr),buffer);//创建文件,将接收到的文件存入到 jpeg.FPGA中

  // fprintf(fp,"%s\n",buffer);

   给cilent发信息
  // sendto(socket1,buffer,sizeof buffer,0,(struct sockaddr*)&from,fromlen);

  }
  Sleep(500);
 }
 closesocket(socket1);
  fclose(fp);
}

 

           

转载于:https://www.cnblogs.com/TFH-FPGA/archive/2012/07/27/2611374.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值