Winsock 发送函数
Posted
技术标签:
【中文标题】Winsock 发送函数【英文标题】:Winsock Send Function 【发布时间】:2014-02-28 19:31:58 【问题描述】:所以这是一个非常基本的概念问题,但我是新手。我已经成功打开并连接了我的 Windows 计算机和我的 Ubuntu 灯服务器之间的套接字。我想通过 Winsock Send 函数通过这个套接字将一个 .txt 文件发送到服务器上。我在哪里告诉套接字/发送函数将位置放在哪个文件夹中?当我连接到服务器时,我只是提供了一个 IP 地址和端口(例如://192.168.1.25
通过端口80
)并建立了连接。有没有办法告诉它把它放在一个特定的位置,比如/var/local/storage/folder
?我没有在指定结束位置的套接字连接的发送函数中看到任何内容?
对不起,如果这是一个新手问题。提前致谢。
【问题讨论】:
【参考方案1】:HTTP 客户端使用 HTTP 协议通过 TCP 连接与 HTTP 服务器通信。 HTTP 协议非常简单,但在实现简单的 HTTP 客户端或服务器时仍然有许多陷阱需要避免,因此与其简单地编写与 TCP 连接并使用 HTTP 进行通信的代码,不如使用 HTTP 客户端库更容易既为您连接,也为您编写/解释 HTTP 协议消息。 libcurl 是一种流行的跨平台 C 库,但在 Windows 上,您也可以使用特定于平台的 WinINet/WinHTTP 函数。如果您仍然坚持使用自己的 TCP 连接为自己编程 HTTP 通信,请查看此答案中的 POST HTTP 请求,看看文件上传的发送数据是什么样子:here
如果您想自己实现 HTTP 客户端,那么明智的做法是通过使用 WireShark 捕获通信来检查其他 HTTP 客户端(例如浏览器)如何与服务器通信。即使您不想实现 HTTP 协议,至少在基本层面上了解 HTTP 协议也是非常有帮助的,即使在使用预烘焙的 HTTP 客户端时也会有很大帮助。
HTTP的wiki页面:http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol 这是一个简单的 HTTP 教程:http://www.jmarshall.com/easy/http/【讨论】:
以上是关于Winsock 发送函数的主要内容,如果未能解决你的问题,请参考以下文章
在 C++ 中的 Winsock 中发送 HTTP GET 请求后,Recv() 函数挂起
VB6 应用程序通过 winsock 发送 UDP 广播消息 - 仅每秒发送一次消息