📄 time.cpp
字号:
// time.cpp : Defines the entry point for the console application.
//
// client.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "winsock.h"
#include "stdlib.h"
void usage(char *name)
{
fprintf(stderr, "usage: %s [ip [port]]\n", name);
}
int main(int argc,char *argv[])
{
SOCKET sock;
struct sockaddr_in sa;
int err;
int servport = 5555; /* 默认去连接的端口 */
char buff[256]; /* 存放服务端返回的信息 */
WSADATA wsd;
unsigned long uladdr; /* 转换后的服务器地址 */
printf("************************************************************\n");
printf("*time client sample,written by suyu,chenyu\n");
printf("*mail:webants@163.com \n");
printf("************************************************************\n");
if (argc > 3 || argc < 2) {
usage(argv[0]);
return -1;
}
if (argc > 1) {
uladdr = inet_addr(argv[1]);
if (uladdr == INADDR_NONE) {
usage(argv[0]);
return -1;
}
}
if (argc == 3) {
servport = atoi(argv[2]);
if (servport > 65535 || servport < 1) { /* 如不是合法端口,则退出*/
usage(argv[0]);
return -2;
}
}
/* 初始化Winsock1.1 */
if (WSAStartup(MAKEWORD(1,1), &wsd) != 0) {
printf("WSAStartup() failed !\n");
return -3;
}
/* 创建连接套接字 */
printf("create socket ...\n");
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == INVALID_SOCKET) {
fprintf(stderr, "socket() failed: %d\n", WSAGetLastError());
return -4;
}
printf("[OK]\n");
/* 填充要连接的服务器地址结构 */
memset(&sa, 0, sizeof(sa));
sa.sin_family = AF_INET;
sa.sin_port = htons(servport);
sa.sin_addr.S_un.S_addr = uladdr;
/* 连接服务器 */
printf("connect ...\n");
err = connect(sock, (const sockaddr *)&sa,sizeof(sa));
if (err != 0) {
fprintf(stderr, "connect() failed: %d\n", WSAGetLastError());
return -5;
}
printf("[OK]\n");
/* 接收返回的时间/日期信息 */
printf("recv data ...\n");
memset(buff, 0, sizeof(buff));
if (recv(sock, buff, sizeof(buff), 0) == SOCKET_ERROR) {
fprintf(stderr, " recv error !\n");
return -1;
}
printf("[OK]\n");
/* 输出返回的信息 */
printf("Server Date/time : \n%s\n", buff);
closesocket(sock); /* 关闭连接套接字 */
WSACleanup(); /* 释放资源 */
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -