📄 pingkud.cpp
字号:
#include<winsock2.h>
#include<iostream.h>
#include<stdio.h>
#pragma comment(lib,"ws2_32.lib")
void main()
{
WSADATA wsaData;
SOCKET s;
SOCKADDR_IN ServerAddr;
int alen,delay,error,Port=6000,timeout=1000;
int *head;
char buf[100],svraddr[100];
WSAStartup(MAKEWORD(2,2),&wsaData);
s=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
setsockopt(s,SOL_SOCKET,SO_RCVTIMEO,(char*)&timeout,
sizeof(timeout));
ServerAddr.sin_family=AF_INET;
ServerAddr.sin_port=htons(Port);
ServerAddr.sin_addr.s_addr=inet_addr("192.168.0.102");
alen=sizeof(ServerAddr);
while(1)
{
cin>>svraddr;
ServerAddr.sin_addr.s_addr=inet_addr(svraddr);
for(int i=0;i<4;i++)
{
head=(int *)buf;
head[0]=GetTickCount();
head[1]=i;
sendto(s,buf,100,0,(SOCKADDR *)&ServerAddr,sizeof(ServerAddr));
if(recvfrom(s,buf,100,0,(SOCKADDR *)&ServerAddr,&alen)!=-1)
{
head=(int *)buf;
if(head[1]==i)
{
delay=GetTickCount()-head[0];
cout<<"Reply from "<<svraddr<<":time="<<delay<<"ms"<<endl;
}
else
cout<<"Request time out."<<endl;
}
else
{
error=WSAGetLastError();
if(error==10060)
cout<<"Request time out."<<endl;
else if(error==10054)
cout<<"连接被关闭."<<endl;
else
cout<<WSAGetLastError()<<endl;
}
}
}
closesocket(s);
WSACleanup();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -