在C#中编写“原始”HTTP客户端你可能会问为什么?我的目标是在J2ME中实现一个HTTP客户端(它只能进行GET和有限的POST),但首先我需要更好地理解HTTP协议(??因此进行了C#尝试)。我的第一次尝试失败了:varrequestBytes=Encoding.UTF8.GetBytes(@"GET/HTTP/1.1User-Agent:CSharpHost:www.google.com");varsocket=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);socket.Connect("www.google.com",80);socket.Send(requestBytes);varresponseBytes=newbyte[socket.ReceiveBufferSize];socket.Receive(responseBytes);.Out.Write(Encoding.UTF8.GetString(responseBytes));套接字打开,但随后阻塞在接收调用上。几秒钟后,远程主机关闭连接。有任何想法吗?当我尝试在PuTTY中使用RAW模式连接时,也会发生同样的情况。如果你正在测试这些东西,最好在本地安装IIS或Apache,然后使用地址127.0.0.1。它给你更多的空间来测试不同的东西!我不喜欢有人使用我的网站来测试他们的HTTP协议实现。如果您打算玩“原始”级别的游戏,您有责任了解那里的协议。请参阅超文本传输??协议-HTTP/1.1。否则,您应该坚持使用WebRequest和WebClient类。我认为你需要使用TcpListener类。//开始监听传入的连接请求TcpListenermyListener=newTcpListener("localhost",8080);//换成你的myListener.Start();然后SocketmySocket=myListener.AcceptSocket();if(mySocket.Connected){//做一些工作mySocket.Send(,,0);}希望能帮助到你。以上就是C#学习教程:用C#编写“原汁原味”的HTTP客户端所有内容分享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
