📄 sever.cpp
字号:
#include<Winsock2.h>
#include<iostream>
using namespace std;
#pragma comment(lib,"ws2_32.lib")
#define DEFAULT_PORT 5050
int main()
{
int iPort = DEFAULT_PORT;
WSADATA wsaData;
SOCKET sClient;
//客户地址长度
int iLen;
//发送的数据长度
int iSend;
char buf[] = "已收到!";
char buf2[200];
//服务器与客户端地址
struct sockaddr_in ser,cli;
cout <<"---------------------------\n";
cout <<" 服务器启动,等待消息......\n";
cout <<"---------------------------\n";
WSAStartup(MAKEWORD(2,2),&wsaData);
sClient=socket(AF_INET,SOCK_DGRAM,0);
if(sClient == INVALID_SOCKET)
{
cout << "套接口错误:"<< WSAGetLastError() << endl;
return 0 ;
}
ser.sin_family = AF_INET;
ser.sin_port=htons(iPort);
ser.sin_addr.s_addr=htonl(INADDR_ANY);
if(bind(sClient,(SOCKADDR*)&ser,sizeof(SOCKADDR)) == SOCKET_ERROR)
{
cout << "绑定错误:"<< WSAGetLastError() <<endl;
return 0 ;
}
/*if(listen(sClient,5) == SOCKET_ERROR)
{ int temp = WSAGetLastError();
cout << "listen failed:"<<temp<<endl;
return 0;
}*/
iLen=sizeof(cli);
/*sAccept = accept(sClient,(struct sockaddr*)&cli,&iLen);
if(sAccept == INVALID_SOCKET)
{
cout << "accept()Failed:"<<WSAGetLastError();
break;
}
cout << "hello!";*/
//cout << "Accepted client IP:"<< inet_ntoa(cli.sin_addr)<< "port:" << ntohs(cli.sin_port);
while(1)
{ //
int ret = recvfrom(sClient,buf2,200,0,(SOCKADDR*)&cli,&iLen);
if( ret == SOCKET_ERROR)
{
cout << "接收错误:" << WSAGetLastError() << endl;
break;
}
else if(ret == 0)
{
break;
}
cout << "学号为:" << buf2<<endl;
// iLen = sizeof(cli);
iSend = sendto(sClient,buf,sizeof(buf),0,(SOCKADDR*)&cli,iLen);
// iSend = sendto(sClient,buf,sizeof(buf),0,(SOCKADDR*)&server,iLen);
if(iSend==SOCKET_ERROR)
{
cout << "发送错误:"<< WSAGetLastError() << endl;
return 0;
}
else if(iSend == 0)
return 0;
else
cout << "发送成功!\n";
}
// if(iSend == SOCKET_ERROR)
// {
// int temp = WSAGetLastError();
// cout << "iSend failed:"<<temp<<endl;
// break;
// }
// else if(iSend==0)
// {
// shutdown(sClient,SD_SEND);
// break;
// else{
// cout << "send()byte:"<<iSend<<endl;
// }*/
// }
//closesocket(sAccept );
// cout<<buf2;
closesocket(sClient);
WSACleanup();
//return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -