|
楼主 |
发表于 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_IN ADDR;
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_IN ADDR1;
int len=sizeof(SOCKADDR);
while(1)
{
SOCKET SK1=accept(SK,(SOCKADDR*)&ADDR1,&len);//len要付初始孜
char sendbuf[100];
sprintf(sendbuf,"chenbo:%S",inet_ntoa(ADDR1.sin_addr));
send(SK1,sendbuf,strlen(sendbuf)+1,0);
char recvbuf[100];
recv(SK1,recvbuf,100,0);
printf("%s\n",recvbuf);
closesocket(SK1);
}
} |
|