📄 chat_server.cpp
字号:
#include<iostream.h>
#include<winsock.h>
#include<stdio.h>
#pragma comment(lib,"ws2_32.lib")
/////////////////////////////
void main()
{
WSADATA wsaData;//初始化
if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0 )
{
printf("失败加载sock\n");
return;
}
SOCKET wang;//创建一个会话
wang=socket(AF_INET,SOCK_DGRAM,0);
if(wang==SOCKET_ERROR)
{
cout<<"发生错误\n";
}
else
cout<<"创建成功\n";
///////////////
sockaddr_in kun;
kun.sin_family=AF_INET;
kun.sin_port=5000;//设置端口
kun.sin_addr.S_un.S_addr=(102<<24)|(1<<16)|(168<<8)|192;//设置IP
if(bind(wang,(sockaddr*)&kun,sizeof(kun))==SOCKET_ERROR)//调用bind函数来给其绑定一个IP地址和一个特定的端口号
{cout<<"绑定通信对象不成功\n";}
else
{ cout<<"绑定通信对象成功\n";
}
/////////////////
int num=sizeof(kun);
char w_recv[50];
int wRecv;
memset(w_recv,0,sizeof(w_recv));
wRecv=recvfrom(wang,w_recv,50,0,(SOCKADDR*)&kun,&num);
if(wRecv==SOCKET_ERROR)
{
cout<<"有错误\n";
return;
}
else if(wRecv==0)
return;
else
{
cout<<"成功接收\n";
}
/////////////////////////////////
int wSend;
char w_send[50]="您好,我是服务器!可以通信!";
wSend=sendto(wang,w_send,50,0,(SOCKADDR*)&kun,num);//发送数据
if(wSend==SOCKET_ERROR)
{
cout<<"通信失败\n";
return;
}
else if(wSend==0)
return;
else
cout<<w_recv;
cout<<"\n";
cout<<"*******************************************************\n";
///////////////////////////////////////////////
int n=sizeof(kun);
char wk_recv[100];
int wkRecv;
int l=sizeof(kun);
int wkSend;
char k_send[100];
memset(wk_recv,0,sizeof(wk_recv));
while(1)
{
wkRecv=recvfrom(wang,wk_recv,50,0,(SOCKADDR*)&kun,&n);//接收数据
cout<<"客户端:"<<wk_recv;
cout<<"\n";
//////////////////////////////////////////////////////////////////
/*int l=sizeof(kun);
int wkSend;
char k_send[100];*/
cout<<"服务器:";
cin>>k_send;
wkSend=sendto(wang,k_send,100,0,(SOCKADDR*)&kun,l);
}
closesocket(wang);
WSACleanup();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -