我正在编写一个Winsock应用程序,有一次我需要形成一个tcp消息,这是一个网页的http get请求。
char clientmessage[] = "GET / HTTP/1.1\r\n\r\n";
Console::WriteLine(clientmessage);
当我尝试打印使用Console::WriteLine()
方法的邮件时,会打印True
。我认为这可能是该方法的一个问题,也许我需要像本教程中那样使用puts()
。
http://www.binarytides.com/winsock-socket-programming-tutorial/
感谢任何帮助。
答案 0 :(得分:2)
似乎隐式将非托管指针转换为System.Boolean
。
要使用.NET API,您需要编组参数。在这种情况下,您需要将clientmessage
封送到System::String^
。您可以使用System::Runtime::InteropServices::Marshal::PtrToStringAnsi()
方法执行此操作。
char clientmessage[] = "GET / HTTP/1.1\r\n\r\n";
System::String^ str = System::Runtime::InteropServices::Marshal::PtrToStringAnsi(static_cast<System::IntPtr>(clientmessage));
Console::WriteLine(str);