用于 UDP 客户端的 Windows C 套接字编程

Posted

技术标签:

【中文标题】用于 UDP 客户端的 Windows C 套接字编程【英文标题】:Windows C socket programming for UDP client 【发布时间】:2012-02-05 07:46:19 【问题描述】:

我正在尝试查找一些 Windows 套接字的示例程序。特别是,我有兴趣用 C(在 Visual Studio 中)编写一个使用 UDP 与服务器通信的客户端。我找不到任何具体的材料。我尝试了一些示例,但出现了一些链接错误。有没有可用的图书馆。请告诉我。 提前致谢。

【问题讨论】:

请就 SO 提出具体问题。您有示例代码以及我们可以帮助您解决的错误吗? 【参考方案1】:

Apache Portable Runtime 支持套接字,它是跨平台的。

【讨论】:

【参考方案2】:

我找到了一个简单的库,它提供了网络的实现,但它是用于 C++ 的。 (C++ Socket Class for Windows)。你可以看看它使用套接字的实现,或者只是使用它(有简单的客户端和服务器的例子)。

【讨论】:

我已经看过了。两件事:我想加快我的应用程序和 C++/Java 调用 malloc 并进行堆事务,这会减慢进程。所以,我正在考虑用 C 来实现所有东西。作为最坏的情况,我可以使用它。但是我得到了链接错误 LNK2019 错误错误 LNK2019: unresolved external symbol ___WSAFDIsSet@ 8 在函数 "public: bool __thiscall SocketSelect::Readable(class Socket const * const)" (?Readable@SocketSelect@@QAE_NQBVSocket@@@Z) c:\Users\saurabh17g\documents 中引用\visual studio 2010\Projects\ArdroneSocket\ArdroneSocket\Socket.obj 看起来我需要链接一个 DLL 来支持这个。你有什么想法吗? 您需要将 ws2_32 库添加到您的链接器选项中。试试#pragma comment(lib, "ws2_32.lib")

以上是关于用于 UDP 客户端的 Windows C 套接字编程的主要内容,如果未能解决你的问题,请参考以下文章

C#获取UDP服务器套接字从中接收数据的客户端的IP地址

C中的两种方式UDP套接字

UDP并发客户端recvfrom错误

操作系统

关于socket通信UDP协议的问题,在客户端client下创建两个套接字s、s1分别用于recvfrom()和sendto()。

UDP----socket通信