c++ - 什么是简单的 C 或 C++ TCP 服务器和客户端示例?

标签 c++ tcp client-server

我需要快速实现一个非常小的 C 或 C++ TCP 服务器/客户端解决方案。这只是将字节数组从一台计算机传输到另一台计算机 - 不需要可扩展/过于复杂。越简单越好。如果可以的话,又快又脏。

我尝试使用本教程中的代码,但无法在 Linux 中使用 g++ 构建它:http://www.linuxhowtos.org/C_C++/socket.htm

如果可能,我想避免使用 3rd 方库,因为我运行它的系统非常受限。这必须是 C 或 C++,因为现有应用程序已经实现。

感谢emg-2的回答,我设法通过以下步骤使上述代码示例与C++兼容:

将这些 header 添加到客户端和服务器:

#include <cstdlib>
#include <cstring>
#include <unistd.h>

server.c ,将clilen的类型改为socklen_t。

int sockfd, newsockfd, portno/*, clilen*/;
socklen_t clilen;

client.c ,更改以下行:

if (connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0) { ... }

收件人:

if (connect(sockfd,(const sockaddr*)&serv_addr,sizeof(serv_addr)) < 0)

最佳答案

我用过Beej's Guide to Network Programming在过去。它是用 C 语言编写的,而不是 C++ 语言,但示例很好。直接转至section 6用于简单的客户端和服务器示例程序。

关于c++ - 什么是简单的 C 或 C++ TCP 服务器和客户端示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/662328/

相关文章:

android - 从两个不同的线程发送 TCP 消息

ssl - OpenSSL SSL_ERROR_WANT_WRITE 在 SSL_write() 期间永远不会恢复

python - 如何通过 S3 签名 URL 上传 zip 文件

algorithm - 返回 N 窗口大小

c++ - 为什么我在 MinGW 中不需要标志 -lm 但在 Linux 中我明确需要它?

c++ - RegQueryValueEx 得到一个奇怪的值

c++ - 尝试使用 int[] 作为类型名模板,编译器无法识别函数 min 原型(prototype)中的参数

node.js - 在 node js 中构建可扩展的 tcp 服务器

java - 调用网页而不从处理中打开它

c++ - Xcode - 如何使用 "-fexhaustive-register-search"进行编译 - 链接器崩溃需要