菜鸟初来报道,希望有大侠能指教一下。怎么修改下面2个代码,使其能够 发送和接收文件(Client、Server)?
要求用到cfile来完成。我是用vc6.0里面那个win32 console application做的。怎么它老是说我cfile没有声明。我就是不懂怎么将这2个代码跟cfile合起来用。
client的代码如下:
#include "stdafx.h"
#include "winsock2.h"
#include "stdio.h"
#pragma comment(lib,"wsock32.lib")int main(int argc, char* argv[])
{
int iPort,iTmp;
    SOCKET s;
    SOCKADDR_IN sin;
    WSADATA wsad;
    WORD wVersionReq;
    char recvBuf[] = "hello world";    iPort=3000;
    sin.sin_addr.s_addr=inet_addr("127.0.0.1");
    sin.sin_family=PF_INET;
    sin.sin_port=htons(iPort);    wVersionReq=MAKEWORD(2,2);    WSAStartup(wVersionReq,&wsad);    s=socket(PF_INET,SOCK_STREAM,0);    iTmp=sizeof(sin);
    printf("WinSock Client Start......\n");
    
connect(s,(LPSOCKADDR)&sin,iTmp);    send(s,recvBuf,12,0);
    
    printf("Sent Data:\n------------------\n%s\n------------------\n",recvBuf);    closesocket(s);
    WSACleanup();
return 0;
}
server的代码如下:
#include "stdafx.h"
#include "winsock2.h"
#include "stdio.h"
#pragma comment(lib,"wsock32.lib")sockaddr_in seraddr;int main(int argc, char* argv[])
{
int iPort,iTmp;
    SOCKET s,rs;
    SOCKADDR_IN sin,rsin;
    WSADATA wsad;
    WORD wVersionReq;
    char recvBuf[100];    wVersionReq=MAKEWORD(2,2);
iPort = 3000;
    WSAStartup(wVersionReq,&wsad);    s=socket(PF_INET,SOCK_STREAM,0);    sin.sin_family=PF_INET;
    sin.sin_port=htons(iPort);
    sin.sin_addr.s_addr=INADDR_ANY;
    iTmp=sizeof(sin);    bind(s,(LPSOCKADDR)&sin,iTmp);
    listen(s,1);    printf("WebServer Running......\n");    rs=accept(s,(LPSOCKADDR)&rsin,&iTmp);
    recv(rs,recvBuf,12,0);
    printf("RECEIVED DATA: \n---------\n%s\n-----------\n",recvBuf); closesocket(rs);
return 0;
}

解决方案 »

  1.   

    cfile 是需要加入MFC框架的。而且需要 afx.h 的头文件。看你的代码中似乎没有... 你需要重新建立一个存在mfc的工程。在创建工程的时候有选项。判断是否使用MFC。要选择使用。
      

  2.   

    一个发送,一个接收,分别编译后在同一台机器运行应该是OK的.
    你的意思是把客户端和服务端做在一个.exe的文件里,这样你得建一个MFC工程.把代码回在里头就可以了,改动的不多
      

  3.   

    创建一个可以使用MFC类库的console程序。就好了