目录
01、源码
02、运行结果
03、小结
Socket是一种计算机网络通信的一种机制,它允许不同计算机或进程之间通过网络进行数据传输和通信。Socket可以被看作是不同计算机之间的数据传输通道,通过这个通道,计算机之间可以进行双向的数据传输。
在计算机网络中,Socket通常指的是一组用于网络通信的API(应用程序编程接口),这些API提供了一系列函数和方法,用于创建、配置和管理Socket连接。通过Socket,应用程序可以实现网络通信的各种功能,如建立连接、发送和接收数据、关闭连接等。
常见的Socket类型包括TCP(传输控制协议)和UDP(用户数据报协议)。TCP是一种可靠的、面向连接的协议,它通过建立连接、数据分片、确认和重传等机制来保证数据的可靠传输。UDP是一种不可靠的、无连接的协议,它通过直接发送数据包来进行通信,不保证数据的可靠性。
使用Socket可以实现各种网络应用,如Web服务器、邮件客户端、即时通信程序等。通过Socket,不同计算机之间可以通过网络进行数据交换,实现远程访问、数据共享和分布式计算等功能。
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪“部分,以及哪部分内容首先显示(如文本先于图形)等。
01、源码
import socket
def main():
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(('localhost', 8000))
sock.listen(5)
while True:
# 等待浏览器访问
conn, addr = sock.accept()
# 接收浏览器发送来的请求内容
data = conn.recv(1024)
print(data)
# 给浏览器返回内容
conn.send(b"HTTP/1.1 200 OK\r\nContent-Type:text/html; charset=utf-8\r\n\r\n")
conn.send("<h1 style='color:blue'>Hello,World!</h1>".encode("utf-8"))
# 关闭和浏览器创建的socket连接
conn.close()
if __name__ == "__main__":
main()
02、运行结果
运行程序后,在浏览器输入url:localhost:8000
所读取的内容就是我们在这部分给浏览器返回的内容
同时当我们每请求一次,程序也会返回响应的信息(浏览器请求信息)
03、小结
运行程序相当于搭建了一个web服务器,只要该程序一直运行着,该服务器则可以一直访问。不过该服务器只能在该局域网内访问,别人访问不了该服务器。