tcp socket客户端和服务端示例分享

时间:2021-10-22 13:24:17 

以下是tcp socket客户端和服务端源码,代码简单大家参考使用吧

Tcp Server


#include <WinSock2.h>
#include <stdio.h>
#pragma comment(lib, "ws2_32.lib")
int main()
{
// initial socket library
WORD wVerisonRequested;
WSADATA wsaData;
int err;
wVerisonRequested = MAKEWORD(1, 1);
err = WSAStartup(wVerisonRequested, &wsaData);
if (err != 0)
{
return -1;
}
//if (LOBYTE(wsaData.wVersion) != 1 ||
//HIBYTE(wsaData.wHighVersion) != 1)
//{
//WSACleanup();
//return -1;
//}

// create socket
SOCKET sockServer = socket(AF_INET, SOCK_STREAM, 0);

// bind socket
SOCKADDR_IN addrServer;
addrServer.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addrServer.sin_family = AF_INET;
addrServer.sin_port = htons(6000);
bind(sockServer, (SOCKADDR *)&addrServer, sizeof(addrServer));

// listen
listen(sockServer, 5);

SOCKADDR_IN addrClient;
int len = sizeof(addrClient);
while(1)
{
// accept
SOCKET sockConnection = accept(sockServer, (SOCKADDR *)&addrClient, &len);

// send
char sendBuf[100];
sprintf(sendBuf, "Welcome %s", inet_ntoa(addrClient.sin_addr));
send(sockConnection, sendBuf, strlen(sendBuf)+1,0);

// receive
char recvBuf[100];
recv(sockConnection, recvBuf, 100, 0);

//
printf("%s", recvBuf);

// close connection socket
closesocket(sockConnection);
}
}

Tcp Client


#include <WinSock2.h>
#include <stdio.h>

#pragma comment(lib, "ws2_32.lib")

int main()
{
// initial socket library
WORD wVerisonRequested;
WSADATA wsaData;
int err;
wVerisonRequested = MAKEWORD(1, 1);
err = WSAStartup(wVerisonRequested, &wsaData);
if (err != 0)
{
return -1;
}
//if (LOBYTE(wsaData.wVersion) != 1 ||
//HIBYTE(wsaData.wHighVersion) != 1)
//{
//WSACleanup();
//return -1;
//}

// create socket
SOCKET sockClient = socket(AF_INET, SOCK_STREAM, 0);

// connect server socket
SOCKADDR_IN addrServer;
addrServer.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
addrServer.sin_family = AF_INET;
addrServer.sin_port = htons(6000);
connect(sockClient, (SOCKADDR *)&addrServer, sizeof(addrServer));

// receive
char recvBuf[100];
recv(sockClient, recvBuf, 100, 0);

//
printf("%s", recvBuf);

// send
char sendBuf[100] = "this is lisi\n";
send(sockClient, sendBuf, strlen(sendBuf)+1,0);

// close connection socket
closesocket(sockClient);

// clean socket library
WSACleanup();
}

标签:socket,客户端,服务端
0
投稿

猜你喜欢

  • 关于idea中Java Web项目的访问路径问题

    2023-01-04 21:23:32
  • springboot配置文件中属性变量引用方式@@解读

    2023-11-24 20:39:18
  • Java如何从json字符串中获取某个值详解

    2023-11-18 12:18:12
  • Spring框架实现AOP添加日志记录功能过程详解

    2023-05-31 01:18:19
  • 微信小程序获取手机号,后端JAVA解密流程代码

    2023-11-29 07:57:26
  • Java使用entrySet方法获取Map集合中的元素

    2022-08-06 17:41:05
  • SpringBoot中@Import注解如何正确使用

    2023-07-28 12:36:16
  • 一次Jvm old过高的排查过程实战记录

    2023-05-07 23:33:49
  • C#中Timer使用及解决重入问题

    2022-02-21 00:44:52
  • Android Gradle多渠道打包的实现方法

    2023-04-26 17:03:26
  • 使用Java 实现一个“你画手机猜”的小游戏

    2021-06-03 19:19:27
  • android计算器代码示例分享

    2023-10-14 14:06:58
  • C#开发WinForm清空DataGridView控件绑定的数据

    2022-12-01 11:22:08
  • gateway、webflux、reactor-netty请求日志输出方式

    2022-11-14 23:39:43
  • java编码IDEA主题推荐

    2021-10-21 03:54:18
  • 使用TypeScript开发微信小程序的方法

    2023-08-30 10:42:03
  • Java中Optional类及orElse方法详解

    2022-07-12 03:21:36
  • 浅谈Android应用安全防护和逆向分析之apk反编译

    2022-07-08 01:15:21
  • Spring与Hibernate整合事务管理的理解

    2023-10-24 16:27:41
  • Android学习之Broadcast的简单使用

    2023-11-19 15:18:02
  • asp之家 软件编程 m.aspxhome.com