套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。
它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,
本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。
套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。
1.HTTP请求格式:
<request line>
<headers>
<blank line>
[<request-body>]
2.了解Socket,TCP,HTTP,直接的关系
HTTP协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。
创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接。
.NetFrameWork为Socket通讯提供了System.Net.Socket命名空间,在这个命名空间里面有以下几个常用的重要类分别是:
·Socket类这个低层的类用于管理连接,WebRequest,TcpClient和UdpClient在内部使用这个类。
·NetworkStream类这个类是从Stream派生出来的,它表示来自网络的数据流
·TcpClient类允许创建和使用TCP连接
·TcpListener类允许监听传入的TCP连接请求
·UdpClient类用于UDP客户创建连接(UDP是另外一种TCP协议,但没有得到广泛的使用,主要用于本地网络)
IPAddress类 提供网际协议 (IP) 地址。
IPEndPoint 继承 EndPoint 将网络端点表示为 IP 地址和端口号。
简单的Http请求服务处理类
服务端配置文件
<appSettings>
<add key="port" value="1280"/>
<!--IP地址-->
<add key="host" value="127.0.0.1"/>
<!--设定你自己的虚拟目录-->
<add key="dir" value="C:/Inetpub/wwwroot"/>
</appSettings>
客户端请求类