菜鸟入门求解,学孙鑫的课遇到点麻烦~
菜鸟入门求解~我学MFC时按照孙 鑫的课程来学的,学到14课的时候,我照着他的《深入详解》来学的,但是编的程序基本上是和视频一样,但不知道为什么编译后的结果不一样,我也检查了下,检查部出。希望大哥们看下,程序我会在下面贴出~ 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);
}
} 客户端的程序如下
#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();
} 编译后的结果不管是客户端还是服务器端都是
http://cache.amobbs.com/bbs_upload782111/files_47/ourdev_691289KFS0LW.jpg
(原文件名:未命名.jpg) 因为是在学习过程中,希望也是学着孙鑫课程的大大们帮下~ 哦 知道原因了,小错误~~
页:
[1]