基于TCP的Sockets编程

本文通过一个简单的示例介绍了如何使用C++实现TCP服务器和客户端之间的通信。该示例包括服务器端代码用于监听连接并发送消息,以及客户端代码用于接收服务器的消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TCP服务器:

// TCP服务器.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <WinSock2.h>
#include <windows.h>

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

int _tmain(int argc, _TCHAR* argv[])
{
	WSADATA data;   
	WORD w = MAKEWORD(2, 0);                            //定义版本号码
	char sztext[] = "welcome yuippe\r\n";
	::WSAStartup(w, &data);                            //初始化套接字库
	SOCKET s, s1;                                     //定义连接套接字和数据收发套接字句柄
	s = ::socket(AF_INET, SOCK_STREAM, 0);            //创建TCP套接字
	sockaddr_in addr, addr2;                          //定义套接字地址结构
	int n = sizeof(addr2);                           //获取套接字地址结构大小
	addr.sin_family = AF_INET;                       //初始化地址结构
	addr.sin_port = htons(75);
	addr.sin_addr.S_un.S_addr = INADDR_ANY;
	::bind(s, (sockaddr*)&addr, sizeof(addr));
	::listen(s, 5);
	printf("服务器已经启动\r\n");

	while (true)
	{
		s1 = ::accept(s, (sockaddr*)&addr2, &n);
		if( s1!= NULL )
		{
			printf("%s已经连接上\r\n", inet_ntoa(addr2.sin_addr));
			::send(s1, sztext, sizeof(sztext), 0);           //向客户端发送字符数组
		}
		::closesocket(s);
		::closesocket(s1);
		::WSACleanup();                                      //释放套接字库

		if (getchar())
		{
			return 0;
		}
		else
		{
			::Sleep(100);
		}

	}

	return 0;
}

客户端:

// TCP客户端.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <WinSock2.h>


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

int _tmain(int argc, _TCHAR* argv[])
{

	WSADATA data;
	WORD w = MAKEWORD(2, 0);
	::WSAStartup(w, &data);
	SOCKET s;
	char sztext[100] = {0};
	s = ::socket(AF_INET, SOCK_STREAM, 0);
	sockaddr_in addr;
	addr.sin_family = AF_INET;
	addr.sin_port = htons(75);
	addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
	printf("客户端已经启动\r\n");
	::connect(s, (sockaddr*)&addr, sizeof(addr));
	::recv(s, sztext, sizeof(sztext), 0);

	printf("%s\r\n", sztext);
	::closesocket(s);
	::WSACleanup();
	if (getchar())
	{
		return 0;
	}
	else
	{
		::Sleep(100);
	}

	return 0;
}


资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值