一、创建TCP服务器
创建TCP服务器的流程:
使用socket创建一个套接字
使用bind绑定IP和端口
使用listen让套接字变成可以被动连接
使用accept等待客户端的连接
使用recv/send接收和发送数据
例子:我们实现一个服务器向浏览器发送“Hello World”。
创建一个server.py文件
import socket #导入socket模块 host = '127.0.0.1' #主机IP port = 8080 #端口 web = socket.socket() #创建TCP/IP套接字 web.bind((host, port)) #绑定端口 web.listen(5) #设置最多连接数 print("服务器等待客户端连接...") #创建一个死循环 while True: conn, addr = web.accept() #建立客户端连接 data = conn.recv(1024) #获取客户端请求的数据 print(data) #打印出接收到的数据 #向客户端发送数据 conn.sendall(b'HTTP/1.1 200 OK\r\n\r\nHello World') conn.close() #关闭连接
运行该py文件 在浏览器输入网址127.0.0.1:8080 (其中127.0.0.1为IP地址,8080为端口号),成功连接到服务器后,浏览器网页上会显示“Hello World”。
这样一个简单的TCP服务器就创建好了。
二、创建TCP客户端
有服务器当然也有客户端啦,客户端发送请求至服务器,服务器返回数据,通过客户端向服务器发送和接受数据。
那么上面讲解了如何用socket模块创建一个简单的TCP服务器,相对于创建TCP服务器,创建TCP客户端要简单很多。
创建一个client.py文件
import socket #导入socket模块 s = socket.socket() #创建套接字 host = '127.0.0.1' #IP port = 8080 #端口 s.connect((host,port)) #主动初始化TCP服务器连接 send_data = input('请输入要发送的数据') #提示用户输入数据 s.send(send_data.encode()) #发送TCP数据 #接受对方发送过来的数据,最大接受1024字节 recvData = s.recv(1024).decode() print('接收到的数据为:', recvData) #关闭套接字 s.close()
此时我们的TCP客户端就已经创建成功,我们可以运行该py文件查看结果是如何。
这里我使用的是pycharm来运行。大家也可以使用cmd窗口命令运行以上的server.py和client.py文件。
这时可以在client.py运行结果下输入 “ 你好”
参考地址:https://blog.csdn.net/arlovekyh/article/details/123772056
标签:py,socket,python,创建,编程,TCP,服务器,客户端 From: https://www.cnblogs.com/ckfuture/p/16754984.html