funnybo 发表于 2011-11-3 11:54:34

菜鸟入门求解,学孙鑫的课遇到点麻烦~

菜鸟入门求解~我学MFC时按照孙 鑫的课程来学的,学到14课的时候,我照着他的《深入详解》来学的,但是编的程序基本上是和视频一样,但不知道为什么编译后的结果不一样,我也检查了下,检查部出。希望大哥们看下,程序我会在下面贴出~

funnybo 发表于 2011-11-3 11:55:26

14课室网络编程其服务器的程序如下
#include<Winsock2.h>
#include<stdio.h>
void main()
{
        WORD WV;
        WSADATA WD;
        int err;
        WV=MAKEWORD(1,1);//用MAKEWORD函数给WV赋值

        err=WSAStartup(WV,&WD);
        if(err!=0)
        {
                return ;
        }

        if(LOBYTE(WD.wVersion!=1)||HIBYTE(WD.wHighVersion!=1))
        {
                WSACleanup();//如果不相同就调用WSACleanup()来清除套接字
                return;
        }
   
       
        SOCKET SK=socket(AF_INET,SOCK_STREAM,0);//接收服务器端的套接字
        SOCKADDR_INADDR;
        ADDR.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//htonl是网络字节转换函数,这里需要多次的理解
        ADDR.sin_family=AF_INET;
        ADDR.sin_port=htons(6000);

    bind(SK,(SOCKADDR*)&ADDR,sizeof(SOCKADDR));

        listen(SK,5);
           SOCKADDR_INADDR1;
        int len=sizeof(SOCKADDR);
        while(1)
        {
      SOCKET SK1=accept(SK,(SOCKADDR*)&ADDR1,&len);//len要付初始孜
          char sendbuf;
          sprintf(sendbuf,"chenbo:%S",inet_ntoa(ADDR1.sin_addr));
          send(SK1,sendbuf,strlen(sendbuf)+1,0);
          char recvbuf;
          recv(SK1,recvbuf,100,0);
          printf("%s\n",recvbuf);
          closesocket(SK1);

        }

}

funnybo 发表于 2011-11-3 11:55:58

客户端的程序如下
#include<Winsock2.h>
#include<stdio.h>
void main()
{
        WORD WV;
        WSADATA WD;
        int err;
        WV=MAKEWORD(1,1);//用MAKEWORD函数给WV赋值

        err=WSAStartup(WV,&WD);
        if(err!=0)
        {
                return ;
        }

        if(LOBYTE(WD.wVersion!=1)||HIBYTE(WD.wHighVersion!=1))
        {
                WSACleanup();//如果不相同就调用WSACleanup()来清除套接字
                return;
        }
      
        SOCKET SK1 =socket(AF_INET,SOCK_STREAM,0);

        SOCKADDR_IN ADDR1;
        ADDR1.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
        ADDR1.sin_port=htons(6000);
        ADDR1.sin_family=AF_INET;
        connect(SK1,(SOCKADDR*)&ADDR1,sizeof(SOCKADDR));
        char recvbuf;
        recv(SK1,recvbuf,100,0);
        printf("%s\n",recvbuf);
        send(SK1,"ZHANGSANSHUO:",strlen("ZHANGSANSHUO:")+1,0);
        closesocket(SK1);
        WSACleanup();
}

funnybo 发表于 2011-11-3 11:56:38

编译后的结果不管是客户端还是服务器端都是


http://cache.amobbs.com/bbs_upload782111/files_47/ourdev_691289KFS0LW.jpg
(原文件名:未命名.jpg)

funnybo 发表于 2011-11-3 11:57:52

因为是在学习过程中,希望也是学着孙鑫课程的大大们帮下~

funnybo 发表于 2011-11-3 18:30:01

哦 知道原因了,小错误~~
页: [1]
查看完整版本: 菜鸟入门求解,学孙鑫的课遇到点麻烦~