我需要快速实现一个非常小的C或C++ TCP服务器/客户端解决方案。这只是简单地将字节数组从一台计算机传输到另一台计算机--不需要可伸缩/过于复杂。越简单越好。如果你能的话,那就快又脏。
我试图使用本教程中的代码,但无法在Linux:C++/socket.htm中使用C++/socket.htm构建代码。
如果可能的话,我想避免第三方库,因为我正在运行的系统是非常受限的。这必须是C或C++,因为现有的应用程序已经实现了。
由于emg-2的回答,我使用以下步骤设法使上述代码示例与C++兼容:
将这些头添加到客户端和服务器:
#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)发布于 2009-03-19 14:09:58
我以前用过Beej网络编程指南。它用的是C,而不是C++,但是例子很好。直接转到第6节获取简单的客户端和服务器示例程序。
发布于 2009-03-19 14:21:11
如果代码应该很简单,那么您可能需要基于传统的BSD套接字的C示例。像boost::asio这样的解决方案在简短和简单的"hello world“示例中是相当复杂的。
要编译前面提到的示例,必须进行简单的修复,因为您是在C++编译器下编译的。我指的是以下文件:
http://www.linuxhowtos.org/data/6/server.c
http://www.linuxhowtos.org/data/6/client.c
来自:C++/socket.htm
正如您在C++中所看到的,需要显式的强制转换。
发布于 2009-03-19 14:03:08
尝试boost::asio (asio.html),它有很多例子。
https://stackoverflow.com/questions/662328
复制相似问题