From 0b552f6928a362b701a7768fd3a6cdb200a83ce8 Mon Sep 17 00:00:00 2001 From: ningling <2907616355@qq.com> Date: Tue, 9 May 2023 08:35:16 +0000 Subject: [PATCH] add 6/client.c. Signed-off-by: ningling <2907616355@qq.com> --- 6/client.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 6/client.c diff --git a/6/client.c b/6/client.c new file mode 100644 index 0000000..f42bc07 --- /dev/null +++ b/6/client.c @@ -0,0 +1,65 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MYPORT 8887 +char* SERVERIP = "127.0.0.1"; + +#define ERR_EXIT(m) + do +{ + perror(m); + exit(EXIT_FAILURE); + } while(0) + +void echo_cli(int sock) +{ + struct sockaddr_in servaddr; + memset(&servaddr, 0, sizeof(servaddr)); + servaddr.sin_family = AF_INET; + servaddr.sin_port = htons(MYPORT); + servaddr.sin_addr.s_addr = inet_addr(SERVERIP); + + int ret; + char sendbuf[1024] = {0}; + char recvbuf[1024] = {0}; + while (fgets(sendbuf, sizeof(sendbuf), stdin) != NULL) + { + + printf("向服务器发送:%s\n",sendbuf); + sendto(sock, sendbuf, strlen(sendbuf), 0, (struct sockaddr *)&servaddr, sizeof(servaddr)); + + ret = recvfrom(sock, recvbuf, sizeof(recvbuf), 0, NULL, NULL); + if (ret == -1) + { + if (errno == EINTR) + continue; + ERR_EXIT("recvfrom"); + } + printf("从服务器接收:%s\n",recvbuf); + + memset(sendbuf, 0, sizeof(sendbuf)); + memset(recvbuf, 0, sizeof(recvbuf)); + } + + close(sock); + + +} + +int main(void) +{ + int sock; + if ((sock = socket(PF_INET, SOCK_DGRAM, 0)) < 0) + ERR_EXIT("socket"); + + echo_cli(sock); + + return 0; +} \ No newline at end of file -- Gitee