codeblocks实现TCP小写转大写

时间: 2023-08-29 12:07:51 浏览: 46
好的,这是一个基于 Code::Blocks 平台的 TCP 小写转大写的示例代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <winsock2.h> #pragma comment(lib, "ws2_32.lib") #define BUF_SIZE 1024 #define PORT 8888 void error_handling(char *message); int main(int argc, char *argv[]) { WSADATA wsaData; SOCKET serv_sock, clnt_sock; SOCKADDR_IN serv_addr, clnt_addr; char message[BUF_SIZE]; int str_len, i; if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) { error_handling("WSAStartup() error!"); } serv_sock = socket(PF_INET, SOCK_STREAM, 0); if (serv_sock == INVALID_SOCKET) { error_handling("socket() error"); } memset(&serv_addr, 0, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); serv_addr.sin_port = htons(PORT); if (bind(serv_sock, (SOCKADDR*)&serv_addr, sizeof(serv_addr)) == SOCKET_ERROR) { error_handling("bind() error"); } if (listen(serv_sock, 5) == SOCKET_ERROR) { error_handling("listen() error"); } int clnt_addr_size = sizeof(clnt_addr); clnt_sock = accept(serv_sock, (SOCKADDR*)&clnt_addr, &clnt_addr_size); if (clnt_sock == INVALID_SOCKET) { error_handling("accept() error"); } while (1) { str_len = recv(clnt_sock, message, BUF_SIZE, 0); if (str_len == 0) { break; } for (i = 0; i < str_len; i++) { message[i] = toupper(message[i]); } send(clnt_sock, message, str_len, 0); } closesocket(clnt_sock); closesocket(serv_sock); WSACleanup(); return 0; } void error_handling(char *message) { fputs(message, stderr); fputc('\n', stderr); exit(1); } ``` 这个程序接收来自客户端的小写字符串,并将其转换为大写后返回给客户端。你可以在代码中修改端口号以适应你的需求。

相关推荐

最新推荐

recommend-type

codeblocks五子棋c语言代码.docx

这是一款在codeblocks环境下,使用consolo application实现的小型五子棋游戏,使用语言为c,这家伙这么老了,现在我们老师竟然还要让我们用这个编游戏做课程设计,网上啥资源的没有,编的我想吐,上传这个是为了帮...
recommend-type

CodeBlocks的安装以及wxWidget的安装及配置

个人总结的完整版的CodeBlocks的安装配置,还有wxWidget在windows下的wxMSW的安装及配置。
recommend-type

CodeBlocks动态库的建立

本文档是在即在CodeBlocks下作动态库(DLL)的一些记录,平时都是在VC6下面做,比较熟练,换一家公司要求用CodeBlocks下面做DLL,所以对于一些用CodeBlocks做工程的同学还是同行都非常有用
recommend-type

codeblocks的使用方法介绍.doc

Code::Blocks,有时也简单打成“CodeBlocks”或者“C::B”,是一款全新的C++集成设计环境(IDE)。所集成了哪些功能主要包括:代码编辑器、代码编译器、代码链接器、代码调试器。总之,就是你使用用它,从编写C++代码...
recommend-type

在Windows环境下CodeBlocks+GTK+3.0开发环境配置

GTK+虽然是Linux下的开发工具包,但是因为其跨平台特性,我们可能需要在Windows 环境下进行程序开发。所以如何在Windows下配置GTK+的开发环境,是许多Gtk学习者的实际需求。 本文在下文基础上增加了GTK+3.0模板修改...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

2. 通过python绘制y=e-xsin(2πx)图像

可以使用matplotlib库来绘制这个函数的图像。以下是一段示例代码: ```python import numpy as np import matplotlib.pyplot as plt def func(x): return np.exp(-x) * np.sin(2 * np.pi * x) x = np.linspace(0, 5, 500) y = func(x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('y = e^{-x} sin(2πx)') plt.show() ``` 运行这段
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。