繁体   English   中英

如何使用win32编写套接字通信程序

[英]How to write socket communication program using win32

新人想要了解win32中的套接字编程。 我知道MFC的一点但是这不好开始,因为它只是隐藏了程序员的内部细节。

使用winsock函数(Winsock2.h)。

http://beej.us/guide/bgnet/

Beej的指南是一个非常常见的起点。 自从我开始使用这些东西已经有几年了,但是iirc,指南使用Berkeley套接字并在适当的情况下指出与winsock的差异。

你是对的,MFC会模糊一些细节,我不知道他们为什么决定把它包起来。

关于WinSock编程有很多好书和教程。 这是一个;

http://www.codeproject.com/KB/IP/winsockintro01.aspx

答案是使用win32套接字API。

在MSDN中有关于此API的信息。

它(所谓的'Winsock'API)类似于(基于)Unix / Posix API,因此与MSDN一样,关于在Unix上使用套接字的许多文献(书籍)也是相关的。

据推测,谷歌搜索会找到你的代码样本。

您需要了解一些关于网络的信息:例如,“IP地址”和“端口”是什么。

您需要选择协议(UDP或TCP)。

Win32的不同之处在于,当您有连接套接字时,可以使用ReadFile和WriteFile,这意味着您可以使用与ReadFile和WriteFile关联的重叠I / O选项。

我全心全意地同意ChrisW,并赞扬你传递MFC。

有关很多出色的WinSock信息,请参阅MSDN Winsock参考

此外,虽然它可能太大而无法学习,但我认为它是一个非常好的套接字服务器类 - 如果你发现任何有用的东西,请告诉我。

一个小提示(假设您正在使用Visual Studio和Winsocket librabry),您需要手动链接WS2_32.Lib。 我发现这个小步骤是许多初学者错过的东西,并且因为它而得到一些奇怪的错误(在旁观者的眼中很奇怪)。 http://social.microsoft.com/Forums/en-US/vcgeneral/thread/cfefa4a5-1f1a-4987-8bc7-f3197cb5826c

也; imho你不应该使用MFC。 在google-net上有很多很棒的针对winsocket编程的指南:)

祝你好运

两种选择:

  1. 写一个基于文件流的代码,与串口通信。
  2. 使用C ++库进行串口通信(google for this)

第一个选项意味着编写“锅炉板”代码,这样您最好使用第三方库。

串口编程最常见的“启动故障”是与设备建立通信链路。 您需要对端口名称,波特率,奇偶校验等进行正确设置(通常由设备制造商提供)。

然后还会有一个设备的“命令集”。 例如,如果您发送'?' 对于设备,它将返回设备信息,如制造商名称等('?'命令是一个示例,它不是标准 - 命令集因设备而异)。

所有串行通信的工作方式如下: - 您向串行端口写入命令 - 轮询读取缓冲区以获取设备的响应

据我所知,在C ++或MFC中没有内置的串口通信类,但是有很多第三方库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM