当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《什么是简单的C或C++TCP服务器和客户端示例?》经验,为你挑选了3个好方法。

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

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

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

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

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

#include 
#include 
#include 

在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)

Bill the Liz.. 42

我过去曾使用过Beej的网络编程指南.它是C语言,而不是C++,但这些例子很好.直接转到第6节,了解简单的客户端和服务器示例程序.



1> Bill the Liz..:

我过去曾使用过Beej的网络编程指南.它是C语言,而不是C++,但这些例子很好.直接转到第6节,了解简单的客户端和服务器示例程序.



2> 小智..:

如果代码应该简单,那么您可能要求基于传统BSD套接字的C示例.boost::asio对于短而简单的"hello world"示例,类似的解决方案非常复杂.

要编译您提到的示例,您必须进行简单的修复,因为您是在C++编译器下编译的.我指的是以下文件:
http://www.linuxhowtos.org/data/6/server.c
http://www.linuxhowtos.org/data/6/client.c
来自:http:// www. linuxhowtos.org/C_C++/socket.htm

    在以下文件中添加以下内容:

    #include 
    #include 
    #include 
    

    在client.c中,更改行:

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

    至:

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

正如您在C++中看到的那样,需要进行显式转换.



3> bayda..:

试试boost :: asio lib(http://www.boost.org/doc/libs/1_36_0/doc/html/boost_asio.html)它有很多例子.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有