📄 server.cpp
字号:
#include <winsock.h>
#include <stdio.h>
#pragma hdrstop
#include <condefs.h>
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
int sock,length;
struct sockaddr_in server;
int msgsock;
char buf[1024];
int rval;
WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested=MAKEWORD(2,0);
int err=WSAStartup(wVersionRequested,&wsaData);
if(err==-1)
{
perror("WSAStartup");
exit(1);
}
sock=socket(AF_INET,SOCK_STREAM,0);
if(sock<0)
{
perror("Opening stream socket");
exit(1);
}
server.sin_family=AF_INET;
server.sin_port=htons(7016);
server.sin_addr.s_addr=INADDR_ANY;
if(bind(sock,(const struct sockaddr *)&server,sizeof(server))<0)
{
perror("binding stream socket");
exit(1);
}
length=sizeof(server);
if(getsockname(sock,(struct sockaddr*)&server,&length)<0)
{
perror("GETING socket name");
exit(1);
}
printf("socket port #%d\n",ntohs(server.sin_port));
listen(sock,5);
do
{
msgsock=accept(sock,(struct socketaddr*)0,(int *)0);
printf("Have client connected.\n");
if(msgsock==-1)
perror("accept");
else
do
{
memset(buf,0,sizeof(buf));
if((rval=recv(msgsock,buf,1024,MSG_OOB))<0)
{
if(rval==WSAEINPROGRESS)
printf("Hello1\n");
if(rval==WSAENETRESET)
printf("Hello2\n");
if(rval==WSAENOTSOCK)
printf("Hello3\n");
if(rval==WSAEOPNOTSUPP)
printf("Hello4\n");
perror("reading stream message");
getchar();
exit(1);
}
else if(rval==0)
printf("ending connetion\n");
else
printf("---->%s\n",buf);
}while(rval!=0);
closesocket(msgsock);
}while(true);
WSACleanup();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -