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() 函数挂起

如何从主(winsock)向服务器发送消息?

在winsock中,我将如何阻止接受函数从另一个线程阻塞?

VB6 应用程序通过 winsock 发送 UDP 广播消息 - 仅每秒发送一次消息

Python Winsock - 如何通过已经处于活动状态的 Winsock 连接发送数据

winsock多IP发送数据vb6