From 6c626436c6a83580c70f8827919bd0f84b9cb8c8 Mon Sep 17 00:00:00 2001 From: macbook-pro <3101158440@qq.com> Date: Thu, 30 Nov 2023 16:58:51 +0800 Subject: [PATCH] use ggg --- client.c | 47 +++++++++++++++++++++++++++++++++++ server.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ test1.c | 1 + 3 files changed, 123 insertions(+) create mode 100644 client.c create mode 100644 server.c create mode 100644 test1.c diff --git a/client.c b/client.c new file mode 100644 index 0000000..e123251 --- /dev/null +++ b/client.c @@ -0,0 +1,47 @@ +#include "stdafx.h" +#include +#include + +#pragma comment(lib,"ws2_32.lib") + + +int main(int argc, char* argv[]) +{ + WORD sockVersion = MAKEWORD(2,2); + WSADATA data; + if(WSAStartup(sockVersion, &data) != 0) + { + return 0; + } + + SOCKET sclient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if(sclient == INVALID_SOCKET) + { + printf("invalid socket !"); + return 0; + } + + sockaddr_in serAddr; + serAddr.sin_family = AF_INET; + serAddr.sin_port = htons(8888); + serAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1"); + if (connect(sclient, (sockaddr *)&serAddr, sizeof(serAddr)) == SOCKET_ERROR) + { + printf("connect error !"); + closesocket(sclient); + return 0; + } + char * sendData = "你好,TCP服务端,我是客户端!\n"; + send(sclient, sendData, strlen(sendData), 0); + + char recData[255]; + int ret = recv(sclient, recData, 255, 0); + if(ret > 0) + { + recData[ret] = 0x00; + printf(recData); + } + closesocket(sclient); + WSACleanup(); + return 0; +} diff --git a/server.c b/server.c new file mode 100644 index 0000000..180fe57 --- /dev/null +++ b/server.c @@ -0,0 +1,75 @@ +#include "stdafx.h" +#include +#include + +#pragma comment(lib,"ws2_32.lib") + +int main(int argc, char* argv[]) +{ + //初始化WSA + WORD sockVersion = MAKEWORD(2,2); + WSADATA wsaData; + if(WSAStartup(sockVersion, &wsaData)!=0) + { + return 0; + } + + //创建套接字 + SOCKET slisten = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if(slisten == INVALID_SOCKET) + { + printf("socket error !"); + return 0; + } + + //绑定IP和端口 + sockaddr_in sin; + sin.sin_family = AF_INET; + sin.sin_port = htons(8888); + sin.sin_addr.S_un.S_addr = INADDR_ANY; + if(bind(slisten, (LPSOCKADDR)&sin, sizeof(sin)) == SOCKET_ERROR) + { + printf("bind error !"); + } + + //开始监听 + if(listen(slisten, 5) == SOCKET_ERROR) + { + printf("listen error !"); + return 0; + } + + //循环接收数据 + SOCKET sClient; + sockaddr_in remoteAddr; + int nAddrlen = sizeof(remoteAddr); + char revData[255]; + while (true) + { + printf("等待连接...\n"); + sClient = accept(slisten, (SOCKADDR *)&remoteAddr, &nAddrlen); + if(sClient == INVALID_SOCKET) + { + printf("accept error !"); + continue; + } + printf("接受到一个连接:%s \r\n", inet_ntoa(remoteAddr.sin_addr)); + + //接收数据 + int ret = recv(sClient, revData, 255, 0); + if(ret > 0) + { + revData[ret] = 0x00; + printf(revData); + } + + //发送数据 + char * sendData = "你好,TCP客户端!\n"; + send(sClient, sendData, strlen(sendData), 0); + closesocket(sClient); + } + + closesocket(slisten); + WSACleanup(); + return 0; +} diff --git a/test1.c b/test1.c new file mode 100644 index 0000000..41450d5 --- /dev/null +++ b/test1.c @@ -0,0 +1 @@ +#include <>